From 637c14aa976bc1f27d721c68011029967c21b2da Mon Sep 17 00:00:00 2001 From: CChen616 <714434105@qq.com> Date: Fri, 10 May 2024 10:41:37 +0800 Subject: [PATCH] Upload Q1_Pro klipper --- .gitignore | 6 + LICENSE | 674 -- config/printer-creality-ender3-s1-2021.cfg | 11 +- config/printer-creality-ender3-s1pro-2022.cfg | 130 + config/printer-creality-sermoonV1-2022.cfg | 3 +- docs/Status_Reference.md | 11 - klippy/__pycache__/msgproto.cpython-37.pyc | Bin 16000 -> 0 bytes klippy/chelper/__init__.pyc | Bin 11318 -> 0 bytes klippy/chelper/c_helper.so | Bin 302880 -> 0 bytes klippy/clocksync.pyc | Bin 9146 -> 0 bytes klippy/configfile.py | 54 +- klippy/configfile.pyc | Bin 18254 -> 0 bytes klippy/extras/__init__.pyc | Bin 130 -> 0 bytes klippy/extras/adc_temperature.pyc | Bin 21539 -> 0 bytes klippy/extras/adxl345.pyc | Bin 19257 -> 0 bytes klippy/extras/angle.py | 2 +- klippy/extras/bed_mesh.py | 18 + klippy/extras/bed_mesh.pyc | Bin 43456 -> 0 bytes klippy/extras/bltouch.pyc | Bin 10862 -> 0 bytes klippy/extras/bme280.pyc | Bin 17800 -> 0 bytes klippy/extras/board_pins.pyc | Bin 1491 -> 0 bytes klippy/extras/bus.pyc | Bin 11092 -> 0 bytes klippy/extras/buttons.pyc | Bin 10502 -> 0 bytes klippy/extras/chamber_fan.py | 52 + klippy/extras/delayed_gcode.pyc | Bin 2679 -> 0 bytes klippy/extras/display/__init__.pyc | Bin 888 -> 0 bytes klippy/extras/display/display.pyc | Bin 12645 -> 0 bytes klippy/extras/display/font8x14.pyc | Bin 6769 -> 0 bytes klippy/extras/display/hd44780.pyc | Bin 5864 -> 0 bytes klippy/extras/display/hd44780_spi.pyc | Bin 5141 -> 0 bytes klippy/extras/display/menu.pyc | Bin 39406 -> 0 bytes klippy/extras/display/menu_keys.pyc | Bin 4440 -> 0 bytes klippy/extras/display/st7920.pyc | Bin 9873 -> 0 bytes klippy/extras/display/uc1701.pyc | Bin 10075 -> 0 bytes klippy/extras/display_status.pyc | Bin 2524 -> 0 bytes klippy/extras/ds18b20.pyc | Bin 3695 -> 0 bytes klippy/extras/endstop_phase.py | 2 +- klippy/extras/exclude_object.pyc | Bin 11087 -> 0 bytes klippy/extras/fan.pyc | Bin 5275 -> 0 bytes klippy/extras/fan_generic.pyc | Bin 1590 -> 0 bytes klippy/extras/filament_switch_sensor.pyc | Bin 5764 -> 0 bytes klippy/extras/force_move.py | 24 +- klippy/extras/force_move.pyc | Bin 6451 -> 0 bytes klippy/extras/gcode_arcs.pyc | Bin 3985 -> 0 bytes klippy/extras/gcode_macro.pyc | Bin 9129 -> 0 bytes klippy/extras/gcode_macro_break.py | 15 + klippy/extras/gcode_move.pyc | Bin 12174 -> 0 bytes klippy/extras/gcode_shell_command.py | 87 + klippy/extras/hall_filament_width_sensor.py | 12 +- klippy/extras/heater_bed.pyc | Bin 1532 -> 0 bytes klippy/extras/heater_fan.pyc | Bin 2401 -> 0 bytes klippy/extras/heater_generic.pyc | Bin 410 -> 0 bytes klippy/extras/heaters.py | 16 +- klippy/extras/heaters.pyc | Bin 16014 -> 0 bytes klippy/extras/homing.py | 14 +- klippy/extras/homing.pyc | Bin 12680 -> 0 bytes klippy/extras/homing_override.pyc | Bin 2147 -> 0 bytes klippy/extras/htu21d.pyc | Bin 7629 -> 0 bytes klippy/extras/idle_timeout.pyc | Bin 4659 -> 0 bytes klippy/extras/input_shaper.pyc | Bin 8581 -> 0 bytes klippy/extras/led.pyc | Bin 9790 -> 0 bytes klippy/extras/lm75.pyc | Bin 4434 -> 0 bytes klippy/extras/manual_probe.py | 25 +- klippy/extras/manual_probe.pyc | Bin 9331 -> 0 bytes klippy/extras/motion_report.pyc | Bin 14316 -> 0 bytes klippy/extras/neopixel.pyc | Bin 5128 -> 0 bytes klippy/extras/output_pin.pyc | Bin 4337 -> 0 bytes klippy/extras/pause_resume.pyc | Bin 4899 -> 0 bytes klippy/extras/pid_calibrate.pyc | Bin 6137 -> 0 bytes klippy/extras/print_stats.py | 213 +- klippy/extras/print_stats.pyc | Bin 3971 -> 0 bytes klippy/extras/probe.py | 58 +- klippy/extras/probe.pyc | Bin 19824 -> 0 bytes klippy/extras/pulse_counter.pyc | Bin 3459 -> 0 bytes klippy/extras/qdprobe.py | 136 + klippy/extras/quad_gantry_level.pyc | Bin 4964 -> 0 bytes klippy/extras/query_adc.pyc | Bin 1966 -> 0 bytes klippy/extras/query_endstops.pyc | Bin 2871 -> 0 bytes klippy/extras/resonance_tester.pyc | Bin 14195 -> 0 bytes klippy/extras/safe_z_home.pyc | Bin 3090 -> 0 bytes klippy/extras/shaper_calibrate.pyc | Bin 12990 -> 0 bytes klippy/extras/shaper_defs.pyc | Bin 3691 -> 0 bytes klippy/extras/smart_effector.py | 15 +- klippy/extras/spi_temperature.py | 2 +- klippy/extras/spi_temperature.pyc | Bin 12707 -> 0 bytes klippy/extras/statistics.pyc | Bin 3696 -> 0 bytes klippy/extras/stepper_enable.pyc | Bin 6789 -> 0 bytes klippy/extras/temperature_host.pyc | Bin 3564 -> 0 bytes klippy/extras/temperature_mcu.pyc | Bin 9409 -> 0 bytes klippy/extras/thermistor.pyc | Bin 4866 -> 0 bytes klippy/extras/tmc.py | 177 +- klippy/extras/tmc.pyc | Bin 22508 -> 0 bytes klippy/extras/tmc2130.py | 607 +- klippy/extras/tmc2130.pyc | Bin 14134 -> 0 bytes klippy/extras/tmc2208.py | 452 +- klippy/extras/tmc2208.pyc | Bin 6114 -> 0 bytes klippy/extras/tmc2209.py | 198 +- klippy/extras/tmc2209.pyc | Bin 2830 -> 0 bytes klippy/extras/tmc2240.py | 861 ++- klippy/extras/tmc2660.py | 550 +- klippy/extras/tmc5160.py | 723 ++- klippy/extras/tmc_uart.py | 507 +- klippy/extras/tmc_uart.pyc | Bin 10820 -> 0 bytes klippy/extras/tuning_tower.pyc | Bin 4496 -> 0 bytes klippy/extras/verify_heater.pyc | Bin 3818 -> 0 bytes klippy/extras/virtual_sdcard.py | 26 + klippy/extras/virtual_sdcard.pyc | Bin 12392 -> 0 bytes klippy/extras/x_twist_compensation.py | 664 -- klippy/extras/x_twist_compensation.pyc | Bin 22006 -> 0 bytes klippy/extras/z_tilt.pyc | Bin 8694 -> 0 bytes klippy/gcode.py | 63 +- klippy/gcode.pyc | Bin 20076 -> 0 bytes klippy/kinematics/__init__.pyc | Bin 134 -> 0 bytes klippy/kinematics/corexy.pyc | Bin 5209 -> 0 bytes klippy/kinematics/extruder.pyc | Bin 16080 -> 0 bytes klippy/kinematics/none.pyc | Bin 1807 -> 0 bytes klippy/klippy.py | 18 + klippy/mathutil.pyc | Bin 4598 -> 0 bytes klippy/mcu.pyc | Bin 45679 -> 0 bytes klippy/msgproto.pyc | Bin 18988 -> 0 bytes klippy/pins.pyc | Bin 6012 -> 0 bytes klippy/queuelogger.pyc | Bin 3638 -> 0 bytes klippy/reactor.pyc | Bin 16390 -> 0 bytes klippy/serialhdl.pyc | Bin 15805 -> 0 bytes klippy/stepper.py | 66 + klippy/stepper.pyc | Bin 18232 -> 0 bytes klippy/toolhead.py | 35 +- klippy/toolhead.pyc | Bin 21990 -> 0 bytes klippy/util.pyc | Bin 5497 -> 0 bytes klippy/webhooks.pyc | Bin 22633 -> 0 bytes .../__pycache__/kconfiglib.cpython-37.pyc | Bin 159879 -> 0 bytes lib/sam3x/include/component-version.h | 144 +- lib/samd21/samd21a/gcc/system_samd21.c | 128 +- .../samd21a/include/component-version.h | 128 +- lib/samd21/samd21a/include/component/ac.h | 1090 ++-- lib/samd21/samd21a/include/component/adc.h | 1370 ++-- lib/samd21/samd21a/include/component/dac.h | 544 +- lib/samd21/samd21a/include/component/dmac.h | 2146 +++--- lib/samd21/samd21a/include/component/dsu.h | 1098 ++-- lib/samd21/samd21a/include/component/eic.h | 1334 ++-- lib/samd21/samd21a/include/component/evsys.h | 1180 ++-- lib/samd21/samd21a/include/component/gclk.h | 596 +- .../samd21a/include/component/hmatrixb.h | 208 +- lib/samd21/samd21a/include/component/i2s.h | 1250 ++-- lib/samd21/samd21a/include/component/mtb.h | 764 +-- .../samd21a/include/component/nvmctrl.h | 1014 +-- lib/samd21/samd21a/include/component/pac.h | 180 +- lib/samd21/samd21a/include/component/pm.h | 1038 +-- lib/samd21/samd21a/include/component/port.h | 760 +-- lib/samd21/samd21a/include/component/rtc.h | 2108 +++--- lib/samd21/samd21a/include/component/sercom.h | 2988 ++++----- .../samd21a/include/component/sysctrl.h | 1868 +++--- lib/samd21/samd21a/include/component/tc.h | 1340 ++-- lib/samd21/samd21a/include/component/tcc.h | 3606 +++++------ lib/samd21/samd21a/include/component/usb.h | 3582 +++++----- lib/samd21/samd21a/include/component/wdt.h | 578 +- lib/samd21/samd21a/include/instance/ac.h | 146 +- lib/samd21/samd21a/include/instance/adc.h | 170 +- lib/samd21/samd21a/include/instance/dac.h | 120 +- lib/samd21/samd21a/include/instance/dmac.h | 190 +- lib/samd21/samd21a/include/instance/dsu.h | 170 +- lib/samd21/samd21a/include/instance/eic.h | 128 +- lib/samd21/samd21a/include/instance/evsys.h | 360 +- lib/samd21/samd21a/include/instance/gclk.h | 130 +- lib/samd21/samd21a/include/instance/i2s.h | 160 +- lib/samd21/samd21a/include/instance/mtb.h | 178 +- lib/samd21/samd21a/include/instance/nvmctrl.h | 154 +- lib/samd21/samd21a/include/instance/pac0.h | 90 +- lib/samd21/samd21a/include/instance/pac1.h | 90 +- lib/samd21/samd21a/include/instance/pac2.h | 90 +- lib/samd21/samd21a/include/instance/pm.h | 146 +- lib/samd21/samd21a/include/instance/port.h | 244 +- lib/samd21/samd21a/include/instance/ptc.h | 72 +- lib/samd21/samd21a/include/instance/rtc.h | 206 +- .../samd21a/include/instance/sbmatrix.h | 302 +- lib/samd21/samd21a/include/instance/sercom0.h | 258 +- lib/samd21/samd21a/include/instance/sercom1.h | 258 +- lib/samd21/samd21a/include/instance/sercom2.h | 258 +- lib/samd21/samd21a/include/instance/sercom3.h | 258 +- lib/samd21/samd21a/include/instance/sercom4.h | 258 +- lib/samd21/samd21a/include/instance/sercom5.h | 258 +- lib/samd21/samd21a/include/instance/sysctrl.h | 214 +- lib/samd21/samd21a/include/instance/tc3.h | 194 +- lib/samd21/samd21a/include/instance/tc4.h | 194 +- lib/samd21/samd21a/include/instance/tc5.h | 194 +- lib/samd21/samd21a/include/instance/tc6.h | 194 +- lib/samd21/samd21a/include/instance/tc7.h | 194 +- lib/samd21/samd21a/include/instance/tcc0.h | 234 +- lib/samd21/samd21a/include/instance/tcc1.h | 210 +- lib/samd21/samd21a/include/instance/tcc2.h | 202 +- lib/samd21/samd21a/include/instance/usb.h | 660 +- lib/samd21/samd21a/include/instance/wdt.h | 114 +- lib/samd21/samd21a/include/pio/samd21e15a.h | 1304 ++-- lib/samd21/samd21a/include/pio/samd21e16a.h | 1304 ++-- lib/samd21/samd21a/include/pio/samd21e17a.h | 1304 ++-- lib/samd21/samd21a/include/pio/samd21e18a.h | 1304 ++-- lib/samd21/samd21a/include/pio/samd21g15a.h | 1876 +++--- lib/samd21/samd21a/include/pio/samd21g16a.h | 1876 +++--- lib/samd21/samd21a/include/pio/samd21g17a.h | 1876 +++--- lib/samd21/samd21a/include/pio/samd21g17au.h | 1766 ++--- lib/samd21/samd21a/include/pio/samd21g18a.h | 1876 +++--- lib/samd21/samd21a/include/pio/samd21g18au.h | 1766 ++--- lib/samd21/samd21a/include/pio/samd21j15a.h | 2452 +++---- lib/samd21/samd21a/include/pio/samd21j16a.h | 2452 +++---- lib/samd21/samd21a/include/pio/samd21j17a.h | 2452 +++---- lib/samd21/samd21a/include/pio/samd21j18a.h | 2452 +++---- lib/samd21/samd21a/include/sam.h | 132 +- lib/samd21/samd21a/include/samd21.h | 140 +- lib/samd21/samd21a/include/samd21e15a.h | 1118 ++-- lib/samd21/samd21a/include/samd21e16a.h | 1118 ++-- lib/samd21/samd21a/include/samd21e17a.h | 1118 ++-- lib/samd21/samd21a/include/samd21e18a.h | 1118 ++-- lib/samd21/samd21a/include/samd21g15a.h | 1142 ++-- lib/samd21/samd21a/include/samd21g16a.h | 1142 ++-- lib/samd21/samd21a/include/samd21g17a.h | 1142 ++-- lib/samd21/samd21a/include/samd21g17au.h | 1166 ++-- lib/samd21/samd21a/include/samd21g18a.h | 1142 ++-- lib/samd21/samd21a/include/samd21g18au.h | 1166 ++-- lib/samd21/samd21a/include/samd21j15a.h | 1166 ++-- lib/samd21/samd21a/include/samd21j16a.h | 1166 ++-- lib/samd21/samd21a/include/samd21j17a.h | 1166 ++-- lib/samd21/samd21a/include/samd21j18a.h | 1166 ++-- lib/samd21/samd21a/include/system_samd21.h | 96 +- lib/samd51/samd51a/gcc/system_samd51.c | 128 +- .../samd51a/include/component-version.h | 128 +- lib/samd51/samd51a/include/component/ac.h | 1196 ++-- lib/samd51/samd51a/include/component/adc.h | 1742 ++--- lib/samd51/samd51a/include/component/aes.h | 750 +-- lib/samd51/samd51a/include/component/ccl.h | 456 +- lib/samd51/samd51a/include/component/cmcc.h | 714 +- lib/samd51/samd51a/include/component/dac.h | 1088 ++-- lib/samd51/samd51a/include/component/dmac.h | 2832 ++++---- lib/samd51/samd51a/include/component/dsu.h | 1352 ++-- lib/samd51/samd51a/include/component/eic.h | 994 +-- lib/samd51/samd51a/include/component/evsys.h | 1174 ++-- lib/samd51/samd51a/include/component/freqm.h | 466 +- lib/samd51/samd51a/include/component/gclk.h | 544 +- .../samd51a/include/component/hmatrixb.h | 168 +- lib/samd51/samd51a/include/component/i2s.h | 1494 ++--- lib/samd51/samd51a/include/component/icm.h | 1164 ++-- lib/samd51/samd51a/include/component/mclk.h | 944 +-- .../samd51a/include/component/nvmctrl.h | 1610 ++--- .../samd51a/include/component/osc32kctrl.h | 606 +- .../samd51a/include/component/oscctrl.h | 1586 ++--- lib/samd51/samd51a/include/component/pac.h | 1340 ++-- lib/samd51/samd51a/include/component/pcc.h | 502 +- lib/samd51/samd51a/include/component/pdec.h | 1452 ++--- lib/samd51/samd51a/include/component/pm.h | 522 +- lib/samd51/samd51a/include/component/port.h | 828 +-- lib/samd51/samd51a/include/component/qspi.h | 1056 +-- lib/samd51/samd51a/include/component/ramecc.h | 356 +- lib/samd51/samd51a/include/component/rstc.h | 230 +- lib/samd51/samd51a/include/component/rtc.h | 4196 ++++++------ lib/samd51/samd51a/include/component/sdhc.h | 5198 +++++++-------- lib/samd51/samd51a/include/component/sercom.h | 3360 +++++----- lib/samd51/samd51a/include/component/supc.h | 1108 ++-- lib/samd51/samd51a/include/component/tc.h | 1702 ++--- lib/samd51/samd51a/include/component/tcc.h | 3524 +++++----- lib/samd51/samd51a/include/component/trng.h | 344 +- lib/samd51/samd51a/include/component/usb.h | 3554 +++++----- lib/samd51/samd51a/include/component/wdt.h | 600 +- lib/samd51/samd51a/include/instance/ac.h | 158 +- lib/samd51/samd51a/include/instance/adc0.h | 198 +- lib/samd51/samd51a/include/instance/adc1.h | 200 +- lib/samd51/samd51a/include/instance/aes.h | 210 +- lib/samd51/samd51a/include/instance/ccl.h | 114 +- lib/samd51/samd51a/include/instance/cmcc.h | 122 +- lib/samd51/samd51a/include/instance/dac.h | 176 +- lib/samd51/samd51a/include/instance/dmac.h | 1192 ++-- lib/samd51/samd51a/include/instance/dsu.h | 198 +- lib/samd51/samd51a/include/instance/eic.h | 146 +- lib/samd51/samd51a/include/instance/evsys.h | 1438 ++-- lib/samd51/samd51a/include/instance/freqm.h | 118 +- lib/samd51/samd51a/include/instance/gclk.h | 382 +- lib/samd51/samd51a/include/instance/hmatrix.h | 266 +- lib/samd51/samd51a/include/instance/i2s.h | 162 +- lib/samd51/samd51a/include/instance/icm.h | 154 +- lib/samd51/samd51a/include/instance/mclk.h | 122 +- lib/samd51/samd51a/include/instance/nvmctrl.h | 150 +- .../samd51a/include/instance/osc32kctrl.h | 118 +- lib/samd51/samd51a/include/instance/oscctrl.h | 260 +- lib/samd51/samd51a/include/instance/pac.h | 138 +- lib/samd51/samd51a/include/instance/pcc.h | 116 +- lib/samd51/samd51a/include/instance/pdec.h | 160 +- lib/samd51/samd51a/include/instance/pm.h | 118 +- lib/samd51/samd51a/include/instance/port.h | 368 +- lib/samd51/samd51a/include/instance/pukcc.h | 76 +- lib/samd51/samd51a/include/instance/qspi.h | 144 +- lib/samd51/samd51a/include/instance/ramecc.h | 108 +- lib/samd51/samd51a/include/instance/rstc.h | 96 +- lib/samd51/samd51a/include/instance/rtc.h | 312 +- lib/samd51/samd51a/include/instance/sdhc0.h | 294 +- lib/samd51/samd51a/include/instance/sdhc1.h | 294 +- lib/samd51/samd51a/include/instance/sercom0.h | 362 +- lib/samd51/samd51a/include/instance/sercom1.h | 362 +- lib/samd51/samd51a/include/instance/sercom2.h | 362 +- lib/samd51/samd51a/include/instance/sercom3.h | 362 +- lib/samd51/samd51a/include/instance/sercom4.h | 362 +- lib/samd51/samd51a/include/instance/sercom5.h | 362 +- lib/samd51/samd51a/include/instance/sercom6.h | 362 +- lib/samd51/samd51a/include/instance/sercom7.h | 362 +- lib/samd51/samd51a/include/instance/supc.h | 128 +- lib/samd51/samd51a/include/instance/tc0.h | 218 +- lib/samd51/samd51a/include/instance/tc1.h | 218 +- lib/samd51/samd51a/include/instance/tc2.h | 218 +- lib/samd51/samd51a/include/instance/tc3.h | 218 +- lib/samd51/samd51a/include/instance/tc4.h | 218 +- lib/samd51/samd51a/include/instance/tc5.h | 218 +- lib/samd51/samd51a/include/instance/tc6.h | 218 +- lib/samd51/samd51a/include/instance/tc7.h | 218 +- lib/samd51/samd51a/include/instance/tcc0.h | 250 +- lib/samd51/samd51a/include/instance/tcc1.h | 230 +- lib/samd51/samd51a/include/instance/tcc2.h | 212 +- lib/samd51/samd51a/include/instance/tcc3.h | 198 +- lib/samd51/samd51a/include/instance/tcc4.h | 198 +- lib/samd51/samd51a/include/instance/trng.h | 102 +- lib/samd51/samd51a/include/instance/usb.h | 686 +- lib/samd51/samd51a/include/instance/wdt.h | 110 +- lib/samd51/samd51a/include/pio/samd51g18a.h | 2718 ++++---- lib/samd51/samd51a/include/pio/samd51g19a.h | 2718 ++++---- lib/samd51/samd51a/include/pio/samd51j18a.h | 3716 +++++------ lib/samd51/samd51a/include/pio/samd51j19a.h | 3716 +++++------ lib/samd51/samd51a/include/pio/samd51j20a.h | 3716 +++++------ lib/samd51/samd51a/include/pio/samd51n19a.h | 5130 +++++++-------- lib/samd51/samd51a/include/pio/samd51n20a.h | 5130 +++++++-------- lib/samd51/samd51a/include/pio/samd51p19a.h | 5758 ++++++++--------- lib/samd51/samd51a/include/pio/samd51p20a.h | 5758 ++++++++--------- lib/samd51/samd51a/include/sam.h | 112 +- lib/samd51/samd51a/include/samd51.h | 128 +- lib/samd51/samd51a/include/samd51g18a.h | 1950 +++--- lib/samd51/samd51a/include/samd51g19a.h | 1950 +++--- lib/samd51/samd51a/include/samd51j18a.h | 2034 +++--- lib/samd51/samd51a/include/samd51j19a.h | 2034 +++--- lib/samd51/samd51a/include/samd51j20a.h | 2034 +++--- lib/samd51/samd51a/include/samd51n19a.h | 2118 +++--- lib/samd51/samd51a/include/samd51n20a.h | 2118 +++--- lib/samd51/samd51a/include/samd51p19a.h | 2118 +++--- lib/samd51/samd51a/include/samd51p20a.h | 2118 +++--- lib/samd51/samd51a/include/system_samd51.h | 96 +- out/autoconf.h | 208 - out/board-link | 1 - out/compile_time_request.c | 1747 ----- out/compile_time_request.d | 18 - out/compile_time_request.o | Bin 303480 -> 0 bytes out/compile_time_request.txt | 263 - out/klipper.dict | 1 - out/klipper.elf | Bin 712216 -> 0 bytes out/src/adccmds.d | 17 - out/src/adccmds.o | Bin 155808 -> 0 bytes out/src/adccmds.o.ctr | Bin 458 -> 0 bytes out/src/basecmd.d | 22 - out/src/basecmd.o | Bin 238088 -> 0 bytes out/src/basecmd.o.ctr | Bin 1332 -> 0 bytes out/src/buttons.d | 17 - out/src/buttons.o | Bin 166672 -> 0 bytes out/src/buttons.o.ctr | Bin 626 -> 0 bytes out/src/command.d | 21 - out/src/command.o | Bin 206976 -> 0 bytes out/src/command.o.ctr | Bin 174 -> 0 bytes out/src/debugcmds.d | 18 - out/src/debugcmds.o | Bin 142264 -> 0 bytes out/src/debugcmds.o.ctr | Bin 338 -> 0 bytes out/src/endstop.d | 17 - out/src/endstop.o | Bin 149192 -> 0 bytes out/src/endstop.o.ctr | Bin 404 -> 0 bytes out/src/generic/alloc.d | 14 - out/src/generic/alloc.o | Bin 100096 -> 0 bytes out/src/generic/alloc.o.ctr | 0 out/src/generic/crc16_ccitt.d | 15 - out/src/generic/crc16_ccitt.o | Bin 102040 -> 0 bytes out/src/generic/crc16_ccitt.o.ctr | 0 out/src/gpiocmds.d | 17 - out/src/gpiocmds.o | Bin 177856 -> 0 bytes out/src/gpiocmds.o.ctr | Bin 901 -> 0 bytes out/src/i2ccmds.d | 21 - out/src/i2ccmds.o | Bin 171384 -> 0 bytes out/src/i2ccmds.o.ctr | Bin 448 -> 0 bytes out/src/initial_pins.d | 16 - out/src/initial_pins.o | Bin 134888 -> 0 bytes out/src/initial_pins.o.ctr | Bin 77 -> 0 bytes out/src/lcd_hd44780.d | 18 - out/src/lcd_hd44780.o | Bin 181208 -> 0 bytes out/src/lcd_hd44780.o.ctr | Bin 372 -> 0 bytes out/src/lcd_st7920.d | 18 - out/src/lcd_st7920.o | Bin 180888 -> 0 bytes out/src/lcd_st7920.o.ctr | Bin 352 -> 0 bytes out/src/linux/analog.d | 90 - out/src/linux/analog.o | Bin 343704 -> 0 bytes out/src/linux/analog.o.ctr | Bin 186 -> 0 bytes out/src/linux/console.d | 111 - out/src/linux/console.o | Bin 451856 -> 0 bytes out/src/linux/console.o.ctr | Bin 88 -> 0 bytes out/src/linux/gpio.d | 101 - out/src/linux/gpio.o | Bin 416000 -> 0 bytes out/src/linux/gpio.o.ctr | Bin 849 -> 0 bytes out/src/linux/hard_pwm.d | 88 - out/src/linux/hard_pwm.o | Bin 363608 -> 0 bytes out/src/linux/hard_pwm.o.ctr | Bin 658 -> 0 bytes out/src/linux/i2c.d | 91 - out/src/linux/i2c.o | Bin 369504 -> 0 bytes out/src/linux/i2c.o.ctr | Bin 205 -> 0 bytes out/src/linux/main.d | 86 - out/src/linux/main.o | Bin 322688 -> 0 bytes out/src/linux/main.o.ctr | Bin 156 -> 0 bytes out/src/linux/pca9685.d | 92 - out/src/linux/pca9685.o | Bin 412328 -> 0 bytes out/src/linux/pca9685.o.ctr | Bin 1032 -> 0 bytes out/src/linux/sensor_ds18b20.d | 97 - out/src/linux/sensor_ds18b20.o | Bin 406008 -> 0 bytes out/src/linux/sensor_ds18b20.o.ctr | Bin 945 -> 0 bytes out/src/linux/spidev.d | 94 - out/src/linux/spidev.o | Bin 387432 -> 0 bytes out/src/linux/spidev.o.ctr | Bin 897 -> 0 bytes out/src/linux/timer.d | 71 - out/src/linux/timer.o | Bin 287048 -> 0 bytes out/src/linux/timer.o.ctr | Bin 133 -> 0 bytes out/src/linux/watchdog.d | 71 - out/src/linux/watchdog.o | Bin 286768 -> 0 bytes out/src/linux/watchdog.o.ctr | Bin 47 -> 0 bytes out/src/neopixel.d | 21 - out/src/neopixel.o | Bin 199648 -> 0 bytes out/src/neopixel.o.ctr | Bin 428 -> 0 bytes out/src/pulse_counter.d | 17 - out/src/pulse_counter.o | Bin 145280 -> 0 bytes out/src/pulse_counter.o.ctr | Bin 316 -> 0 bytes out/src/pwmcmds.d | 17 - out/src/pwmcmds.o | Bin 155256 -> 0 bytes out/src/pwmcmds.o.ctr | Bin 554 -> 0 bytes out/src/sched.d | 22 - out/src/sched.o | Bin 219936 -> 0 bytes out/src/sched.o.ctr | Bin 263 -> 0 bytes out/src/sensor_adxl345.d | 21 - out/src/sensor_adxl345.o | Bin 178952 -> 0 bytes out/src/sensor_adxl345.o.ctr | Bin 469 -> 0 bytes out/src/sensor_angle.d | 18 - out/src/sensor_angle.o | Bin 219544 -> 0 bytes out/src/sensor_angle.o.ctr | Bin 794 -> 0 bytes out/src/sensor_mpu9250.d | 22 - out/src/sensor_mpu9250.o | Bin 199592 -> 0 bytes out/src/sensor_mpu9250.o.ctr | Bin 469 -> 0 bytes out/src/spi_software.d | 17 - out/src/spi_software.o | Bin 139072 -> 0 bytes out/src/spi_software.o.ctr | Bin 172 -> 0 bytes out/src/spicmds.d | 20 - out/src/spicmds.o | Bin 204368 -> 0 bytes out/src/spicmds.o.ctr | Bin 683 -> 0 bytes out/src/stepper.d | 18 - out/src/stepper.o | Bin 219992 -> 0 bytes out/src/stepper.o.ctr | Bin 809 -> 0 bytes out/src/thermocouple.d | 20 - out/src/thermocouple.o | Bin 184912 -> 0 bytes out/src/thermocouple.o.ctr | Bin 840 -> 0 bytes out/src/tmcuart.d | 21 - out/src/tmcuart.o | Bin 192216 -> 0 bytes out/src/tmcuart.o.ctr | Bin 381 -> 0 bytes out/src/trsync.d | 17 - out/src/trsync.o | Bin 184472 -> 0 bytes out/src/trsync.o.ctr | Bin 592 -> 0 bytes test/klippy/printers.test | 1 + 459 files changed, 104963 insertions(+), 109121 deletions(-) create mode 100644 .gitignore delete mode 100644 LICENSE create mode 100644 config/printer-creality-ender3-s1pro-2022.cfg delete mode 100644 klippy/__pycache__/msgproto.cpython-37.pyc delete mode 100644 klippy/chelper/__init__.pyc delete mode 100644 klippy/chelper/c_helper.so delete mode 100644 klippy/clocksync.pyc delete mode 100644 klippy/configfile.pyc delete mode 100644 klippy/extras/__init__.pyc delete mode 100644 klippy/extras/adc_temperature.pyc delete mode 100644 klippy/extras/adxl345.pyc delete mode 100644 klippy/extras/bed_mesh.pyc delete mode 100644 klippy/extras/bltouch.pyc delete mode 100644 klippy/extras/bme280.pyc delete mode 100644 klippy/extras/board_pins.pyc delete mode 100644 klippy/extras/bus.pyc delete mode 100644 klippy/extras/buttons.pyc create mode 100644 klippy/extras/chamber_fan.py delete mode 100644 klippy/extras/delayed_gcode.pyc delete mode 100644 klippy/extras/display/__init__.pyc delete mode 100644 klippy/extras/display/display.pyc delete mode 100644 klippy/extras/display/font8x14.pyc delete mode 100644 klippy/extras/display/hd44780.pyc delete mode 100644 klippy/extras/display/hd44780_spi.pyc delete mode 100644 klippy/extras/display/menu.pyc delete mode 100644 klippy/extras/display/menu_keys.pyc delete mode 100644 klippy/extras/display/st7920.pyc delete mode 100644 klippy/extras/display/uc1701.pyc delete mode 100644 klippy/extras/display_status.pyc delete mode 100644 klippy/extras/ds18b20.pyc delete mode 100644 klippy/extras/exclude_object.pyc delete mode 100644 klippy/extras/fan.pyc delete mode 100644 klippy/extras/fan_generic.pyc delete mode 100644 klippy/extras/filament_switch_sensor.pyc delete mode 100644 klippy/extras/force_move.pyc delete mode 100644 klippy/extras/gcode_arcs.pyc delete mode 100644 klippy/extras/gcode_macro.pyc create mode 100644 klippy/extras/gcode_macro_break.py delete mode 100644 klippy/extras/gcode_move.pyc create mode 100644 klippy/extras/gcode_shell_command.py delete mode 100644 klippy/extras/heater_bed.pyc delete mode 100644 klippy/extras/heater_fan.pyc delete mode 100644 klippy/extras/heater_generic.pyc delete mode 100644 klippy/extras/heaters.pyc delete mode 100644 klippy/extras/homing.pyc delete mode 100644 klippy/extras/homing_override.pyc delete mode 100644 klippy/extras/htu21d.pyc delete mode 100644 klippy/extras/idle_timeout.pyc delete mode 100644 klippy/extras/input_shaper.pyc delete mode 100644 klippy/extras/led.pyc delete mode 100644 klippy/extras/lm75.pyc delete mode 100644 klippy/extras/manual_probe.pyc delete mode 100644 klippy/extras/motion_report.pyc delete mode 100644 klippy/extras/neopixel.pyc delete mode 100644 klippy/extras/output_pin.pyc delete mode 100644 klippy/extras/pause_resume.pyc delete mode 100644 klippy/extras/pid_calibrate.pyc delete mode 100644 klippy/extras/print_stats.pyc delete mode 100644 klippy/extras/probe.pyc delete mode 100644 klippy/extras/pulse_counter.pyc create mode 100644 klippy/extras/qdprobe.py delete mode 100644 klippy/extras/quad_gantry_level.pyc delete mode 100644 klippy/extras/query_adc.pyc delete mode 100644 klippy/extras/query_endstops.pyc delete mode 100644 klippy/extras/resonance_tester.pyc delete mode 100644 klippy/extras/safe_z_home.pyc delete mode 100644 klippy/extras/shaper_calibrate.pyc delete mode 100644 klippy/extras/shaper_defs.pyc delete mode 100644 klippy/extras/spi_temperature.pyc delete mode 100644 klippy/extras/statistics.pyc delete mode 100644 klippy/extras/stepper_enable.pyc delete mode 100644 klippy/extras/temperature_host.pyc delete mode 100644 klippy/extras/temperature_mcu.pyc delete mode 100644 klippy/extras/thermistor.pyc delete mode 100644 klippy/extras/tmc.pyc delete mode 100644 klippy/extras/tmc2130.pyc delete mode 100644 klippy/extras/tmc2208.pyc delete mode 100644 klippy/extras/tmc2209.pyc delete mode 100644 klippy/extras/tmc_uart.pyc delete mode 100644 klippy/extras/tuning_tower.pyc delete mode 100644 klippy/extras/verify_heater.pyc delete mode 100644 klippy/extras/virtual_sdcard.pyc delete mode 100644 klippy/extras/x_twist_compensation.py delete mode 100644 klippy/extras/x_twist_compensation.pyc delete mode 100644 klippy/extras/z_tilt.pyc delete mode 100644 klippy/gcode.pyc delete mode 100644 klippy/kinematics/__init__.pyc delete mode 100644 klippy/kinematics/corexy.pyc delete mode 100644 klippy/kinematics/extruder.pyc delete mode 100644 klippy/kinematics/none.pyc delete mode 100644 klippy/mathutil.pyc delete mode 100644 klippy/mcu.pyc delete mode 100644 klippy/msgproto.pyc delete mode 100644 klippy/pins.pyc delete mode 100644 klippy/queuelogger.pyc delete mode 100644 klippy/reactor.pyc delete mode 100644 klippy/serialhdl.pyc delete mode 100644 klippy/stepper.pyc delete mode 100644 klippy/toolhead.pyc delete mode 100644 klippy/util.pyc delete mode 100644 klippy/webhooks.pyc delete mode 100644 lib/kconfiglib/__pycache__/kconfiglib.cpython-37.pyc delete mode 100644 out/autoconf.h delete mode 100644 out/board-link delete mode 100644 out/compile_time_request.c delete mode 100644 out/compile_time_request.d delete mode 100644 out/compile_time_request.o delete mode 100644 out/compile_time_request.txt delete mode 100644 out/klipper.dict delete mode 100644 out/klipper.elf delete mode 100644 out/src/adccmds.d delete mode 100644 out/src/adccmds.o delete mode 100644 out/src/adccmds.o.ctr delete mode 100644 out/src/basecmd.d delete mode 100644 out/src/basecmd.o delete mode 100644 out/src/basecmd.o.ctr delete mode 100644 out/src/buttons.d delete mode 100644 out/src/buttons.o delete mode 100644 out/src/buttons.o.ctr delete mode 100644 out/src/command.d delete mode 100644 out/src/command.o delete mode 100644 out/src/command.o.ctr delete mode 100644 out/src/debugcmds.d delete mode 100644 out/src/debugcmds.o delete mode 100644 out/src/debugcmds.o.ctr delete mode 100644 out/src/endstop.d delete mode 100644 out/src/endstop.o delete mode 100644 out/src/endstop.o.ctr delete mode 100644 out/src/generic/alloc.d delete mode 100644 out/src/generic/alloc.o delete mode 100644 out/src/generic/alloc.o.ctr delete mode 100644 out/src/generic/crc16_ccitt.d delete mode 100644 out/src/generic/crc16_ccitt.o delete mode 100644 out/src/generic/crc16_ccitt.o.ctr delete mode 100644 out/src/gpiocmds.d delete mode 100644 out/src/gpiocmds.o delete mode 100644 out/src/gpiocmds.o.ctr delete mode 100644 out/src/i2ccmds.d delete mode 100644 out/src/i2ccmds.o delete mode 100644 out/src/i2ccmds.o.ctr delete mode 100644 out/src/initial_pins.d delete mode 100644 out/src/initial_pins.o delete mode 100644 out/src/initial_pins.o.ctr delete mode 100644 out/src/lcd_hd44780.d delete mode 100644 out/src/lcd_hd44780.o delete mode 100644 out/src/lcd_hd44780.o.ctr delete mode 100644 out/src/lcd_st7920.d delete mode 100644 out/src/lcd_st7920.o delete mode 100644 out/src/lcd_st7920.o.ctr delete mode 100644 out/src/linux/analog.d delete mode 100644 out/src/linux/analog.o delete mode 100644 out/src/linux/analog.o.ctr delete mode 100644 out/src/linux/console.d delete mode 100644 out/src/linux/console.o delete mode 100644 out/src/linux/console.o.ctr delete mode 100644 out/src/linux/gpio.d delete mode 100644 out/src/linux/gpio.o delete mode 100644 out/src/linux/gpio.o.ctr delete mode 100644 out/src/linux/hard_pwm.d delete mode 100644 out/src/linux/hard_pwm.o delete mode 100644 out/src/linux/hard_pwm.o.ctr delete mode 100644 out/src/linux/i2c.d delete mode 100644 out/src/linux/i2c.o delete mode 100644 out/src/linux/i2c.o.ctr delete mode 100644 out/src/linux/main.d delete mode 100644 out/src/linux/main.o delete mode 100644 out/src/linux/main.o.ctr delete mode 100644 out/src/linux/pca9685.d delete mode 100644 out/src/linux/pca9685.o delete mode 100644 out/src/linux/pca9685.o.ctr delete mode 100644 out/src/linux/sensor_ds18b20.d delete mode 100644 out/src/linux/sensor_ds18b20.o delete mode 100644 out/src/linux/sensor_ds18b20.o.ctr delete mode 100644 out/src/linux/spidev.d delete mode 100644 out/src/linux/spidev.o delete mode 100644 out/src/linux/spidev.o.ctr delete mode 100644 out/src/linux/timer.d delete mode 100644 out/src/linux/timer.o delete mode 100644 out/src/linux/timer.o.ctr delete mode 100644 out/src/linux/watchdog.d delete mode 100644 out/src/linux/watchdog.o delete mode 100644 out/src/linux/watchdog.o.ctr delete mode 100644 out/src/neopixel.d delete mode 100644 out/src/neopixel.o delete mode 100644 out/src/neopixel.o.ctr delete mode 100644 out/src/pulse_counter.d delete mode 100644 out/src/pulse_counter.o delete mode 100644 out/src/pulse_counter.o.ctr delete mode 100644 out/src/pwmcmds.d delete mode 100644 out/src/pwmcmds.o delete mode 100644 out/src/pwmcmds.o.ctr delete mode 100644 out/src/sched.d delete mode 100644 out/src/sched.o delete mode 100644 out/src/sched.o.ctr delete mode 100644 out/src/sensor_adxl345.d delete mode 100644 out/src/sensor_adxl345.o delete mode 100644 out/src/sensor_adxl345.o.ctr delete mode 100644 out/src/sensor_angle.d delete mode 100644 out/src/sensor_angle.o delete mode 100644 out/src/sensor_angle.o.ctr delete mode 100644 out/src/sensor_mpu9250.d delete mode 100644 out/src/sensor_mpu9250.o delete mode 100644 out/src/sensor_mpu9250.o.ctr delete mode 100644 out/src/spi_software.d delete mode 100644 out/src/spi_software.o delete mode 100644 out/src/spi_software.o.ctr delete mode 100644 out/src/spicmds.d delete mode 100644 out/src/spicmds.o delete mode 100644 out/src/spicmds.o.ctr delete mode 100644 out/src/stepper.d delete mode 100644 out/src/stepper.o delete mode 100644 out/src/stepper.o.ctr delete mode 100644 out/src/thermocouple.d delete mode 100644 out/src/thermocouple.o delete mode 100644 out/src/thermocouple.o.ctr delete mode 100644 out/src/tmcuart.d delete mode 100644 out/src/tmcuart.o delete mode 100644 out/src/tmcuart.o.ctr delete mode 100644 out/src/trsync.d delete mode 100644 out/src/trsync.o delete mode 100644 out/src/trsync.o.ctr diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f952167 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +out +*.so +*.pyc +.config +.config.old +klippy/.version diff --git a/LICENSE b/LICENSE deleted file mode 100644 index f288702..0000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/config/printer-creality-ender3-s1-2021.cfg b/config/printer-creality-ender3-s1-2021.cfg index bda56e7..766dd0f 100644 --- a/config/printer-creality-ender3-s1-2021.cfg +++ b/config/printer-creality-ender3-s1-2021.cfg @@ -1,10 +1,9 @@ # This file contains pin mappings for the stock 2021 Creality Ender 3 -# S1 (and S1 pro). To use this config, check the STM32 Chip on the -# V2.4S1 Board then during "make menuconfig" select either the -# STM32F103 with a "28KiB bootloader" or select the STM32F401 with a -# "64KiB bootloader" and serial (on USART1 PA10/PA9) communication for -# both depending on the STM32 chip installed on your printer's -# motherboard. +# S1. To use this config, check the STM32 Chip on the V2.4S1 Board +# then during "make menuconfig" select either the STM32F103 with a +# "28KiB bootloader" or select the STM32F401 with a "64KiB bootloader" +# and serial (on USB PA10/PA9) communication for both depending on the +# STM32 Chip installed on your printers Motherboard. # If you prefer a direct serial connection, in "make menuconfig" # select "Enable extra low-level configuration options" and select diff --git a/config/printer-creality-ender3-s1pro-2022.cfg b/config/printer-creality-ender3-s1pro-2022.cfg new file mode 100644 index 0000000..9116eb0 --- /dev/null +++ b/config/printer-creality-ender3-s1pro-2022.cfg @@ -0,0 +1,130 @@ +# This file contains pin mappings for the stock 2022 Creality Ender 3 +# S1 Pro. To use this config, check the STM32 Chip on the V2.4S1 Board +# then during "make menuconfig" select either the STM32F103 with a +# "28KiB bootloader" or select the STM32F401 with a "64KiB bootloader" +# and serial (on USB PA10/PA9) communication for both depending on the +# STM32 Chip installed on your printers Motherboard. + +# If you prefer a direct serial connection, in "make menuconfig" +# select "Enable extra low-level configuration options" and select +# Serial (on USART2 PA3/PA2), which is broken out on the 10 pin IDC +# cable used for the LCD module as follows: +# 3: Tx, 4: Rx, 9: GND, 10: VCC + +# Flash this firmware by copying "out/klipper.bin" to a SD card and +# turning on the printer with the card inserted. The firmware +# filename must changed to "firmware.bin" + +# See docs/Config_Reference.md for a description of parameters. + +[stepper_x] +step_pin: PC2 +dir_pin: PB9 +enable_pin: !PC3 +microsteps: 16 +rotation_distance: 40 +endstop_pin: !PA5 +position_endstop: -10 +position_max: 235 +position_min: -15 +homing_speed: 50 + +[stepper_y] +step_pin: PB8 +dir_pin: PB7 +enable_pin: !PC3 +microsteps: 16 +rotation_distance: 40 +endstop_pin: !PA6 +position_endstop: -10 +position_max: 241 +position_min: -15 +homing_speed: 50 + +[stepper_z] +step_pin: PB6 +dir_pin: !PB5 +enable_pin: !PC3 +microsteps: 16 +rotation_distance: 8 +endstop_pin: probe:z_virtual_endstop +position_max: 270 +position_min: -4 + +[extruder] +step_pin: PB4 +dir_pin: PB3 +enable_pin: !PC3 +microsteps: 16 +gear_ratio: 42:12 +rotation_distance: 26.359 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +heater_pin: PA1 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PC5 +control: pid +pid_Kp: 23.561 +pid_Ki: 1.208 +pid_Kd: 114.859 +min_temp: 0 +max_temp: 300 + +[heater_bed] +heater_pin: PA7 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PC4 +control: pid +pid_Kp: 71.867 +pid_Ki: 1.536 +pid_Kd: 840.843 +min_temp: 0 +max_temp: 110 + +[heater_fan hotend_fan] +pin: PC0 + +[fan] +pin: PA0 + +[mcu] +serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 +restart_method: command + +[printer] +kinematics: cartesian +max_velocity: 300 +max_accel: 2000 +max_z_velocity: 5 +max_z_accel: 100 + +[bltouch] +sensor_pin: ^PC14 +control_pin: PC13 +x_offset: -31.8 +y_offset: -40.5 +z_offset: 0 +probe_with_touch_mode: true +stow_on_each_sample: false + +[bed_mesh] +speed: 120 +mesh_min: 20, 20 +mesh_max: 200, 200 +probe_count: 4,4 +algorithm: bicubic + +[safe_z_home] +home_xy_position: 147, 154 +speed: 75 +z_hop: 5 +z_hop_speed: 5 +move_to_previous: true + +[filament_switch_sensor e0_sensor] +switch_pin: !PC15 +pause_on_runout: true +runout_gcode: PAUSE + +[pause_resume] +recover_velocity: 25 diff --git a/config/printer-creality-sermoonV1-2022.cfg b/config/printer-creality-sermoonV1-2022.cfg index ca8a91a..ef100fb 100644 --- a/config/printer-creality-sermoonV1-2022.cfg +++ b/config/printer-creality-sermoonV1-2022.cfg @@ -2,8 +2,7 @@ # with CR-FDM-v2.4.S1.200 motherboard. # To use this config, during "make menuconfig" select the STM32F401 -# with a "64KiB bootloader" and serial (on USART1 PA10/PA9) -# communication. +# with a "64KiB bootloader" and serial (on USB PA10/PA9) communication. # If you prefer a direct serial connection, in "make menuconfig" # select "Enable extra low-level configuration options" and select diff --git a/docs/Status_Reference.md b/docs/Status_Reference.md index 4c7883c..4cc7512 100644 --- a/docs/Status_Reference.md +++ b/docs/Status_Reference.md @@ -244,17 +244,6 @@ The following information is available for each `[led led_name]`, chain could be accessed at `printer["neopixel "].color_data[1][2]`. -## manual_probe - -The following information is available in the -`manual_probe` object: -- `is_active`: Returns True if a manual probing helper script is currently -active. -- `z_position`: The current height of the nozzle (as the printer currently -understands it). -- `z_position_lower`: Last probe attempt just lower than the current height. -- `z_position_upper`: Last probe attempt just greater than the current height. - ## mcu The following information is available in diff --git a/klippy/__pycache__/msgproto.cpython-37.pyc b/klippy/__pycache__/msgproto.cpython-37.pyc deleted file mode 100644 index 648cb17ae40d3c4aa7821760c99ab4c16fc765ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16000 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 I<0HlY17&jY1ONa4 diff --git a/klippy/chelper/__init__.pyc b/klippy/chelper/__init__.pyc deleted file mode 100644 index cbba871a46051cfb73fc0423cb7e506b900a06c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11318 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 diff --git a/klippy/chelper/c_helper.so b/klippy/chelper/c_helper.so deleted file mode 100644 index 4fe799041286d3e4ec028e8dd4b9054871ac108c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302880 zcmeFa4R}=5wLiSiIWv<8l%P+;l2&`65Q&w3=enUz7zLdxR>L;7k4pk7jC*raj(E#j(at3 zFYZd*)wpYL*WzA_`+nRTaBsv-*Mqq0r6-I-Nw*-KJ7&`R+m74bv3p*9?&1B156^L> zExhl$M;=W5s_n$x(|7UP|Lye4sgHEbddbtV|HeHx9RKro&Td)bnP|Mrzvs?t7F(wN zX@B9%=R4L!SN!7IchD_;EjHJ93rdtR;Fefy-d zS+0vu1Qy-7z`ExbTju`xzpX!g=Iwj+o%Mb|HYoi?zZ1-G5zt^Up(_gRm5`Y*t_oEHXgWiSDN#KoNph0{kG(k%FTba z){Z~B<>N7R4?p+2?|i@X;xEQNRMfZX;Zq;4oluzfYQ}~iS$==!jklDckD3UW>3qvK ziv>20Xqu~D@{a$TcO{0wWd!w{pF$(=Z8f9M6M}a>v3Z1u(LgzE1 z&^Zx&yV|(WJhS2+dHu&I{dNF;HU7^Uh5qhQ@b4Oh{&gVaYV9|S!p~`=z>kg6&O2B! zuEvMALI2g@3r88(eWUcdcoaS_8%1vCj>3n1qtKr=3jUj;%-5Jv=$}0bJ;z3wuQj94 zbNeX$R*ljxKMLQbqkSvxk=G}q%*(GwY3Gll;J-T>{wVx>Zj^D619LU`%!HGY$V|*v zC66Fh8OS9#odnMzgNaLB1oy+~B6#0DGCW;Q*gXn9TPg#Z6}Tfx#?N-ifHDRC8_+}T z99}E~N))&UDZ!f+dWsZyt0ey>maQ}(D)4I+dIre(!F5hf7#wJ+o#o^V;Zos0QTjba z&J?b0>3_zKEA5{mCkdBN`k%2km3FEX0`nF4W~JZV3Llmz@VQDm-793kQ3c+mz_+cE z0ipu`M4CqvTcW^cC~%$9ehN8uxDLq)Gbr=bT_FQvG2e8(r?h`jX-C->uro?KR)r5h zlP$ucfx?GvZW*4gz$YpF4k-M|lZ#okA`i`qJgD?cP~hF< z$l_Av2fOlIu-fJkijfl!7nS80qXu|f-+whSIhA23O(~w zdKAG?`EZxg&Td6td`kP56*{*m^RBRo2`YaSJ}Bg})2K&!bW)KAl}@vQZ&dnK@tYNR zMxorHI$tj-^jH-{r5bxmfgdJ?#ib07eM_NJES2Hyik#FceA}k*El)0HhZX$lG8y1h z@Q*6;5Utb%_?p|ew=bE^V3D(&0ksVH7qT31)@EoDfH(M45VRb{z{)vl?jW3{C<<*wCh)|Rd$aPhEfTC&I zwHkz=J+IeQSt9kus;gG7Mq8e`s+!{R+Tzmn<-@6Qm6Q~(a8W-laDn>qRBss8DD@@} zu(Y<0)p=H|URztnyi#9mU2SD`O?hSA3Xob_jh?G(N^5J2UDeeXC95s3^iZA$FpRl`UjQsp6f!5`Pk(&800rI^k^(rP^4o>lDel-JcM(zK$c$}98z#v6vF-BVRn zQzErINQ8H7UFrJbwUsnPZCyzgwbDU74i^q>sU((eSDmM97~%4OhfOZY7ltg$L|v6M zu3>d*)>c9sAWoPSb$}(Mo~jZISQ)+CteTS*L*|GUp%`LZTnZUNP3^==n5z27-Mf$ltIBWl!C!5(gaAzWSO z8c_tsyGC~4sj4Ym|G)@D3AkY-5N5Wtw%k=&TvNKPw5AsJ4;ni}s%Nl#IJ~X~7OtAa zvDoWbORQg84Xqpol-a8RegjZjS2e7bWc3y0CMLly7FVrS)m^pcu-@xRYZWw_i0Z1^ za!Gn*vml9|{HXRw)I;1sE zOArkF5NC%K$a)T&FdQFz2Yavx4KieSIrXx7^kS?yrC8Lo>yI=;!ywc~c_kzeYDLS% zu)-Cj;KLyDylU;^ut90oTv?%AbzqeSO5F`Dnj=eUNTnTemObfHyg;i#C zx!ZGHZPj(N*!)Ec9J$3eT=(sp6u*nyaUTD!b`e}#rs57^4`HYZ*i zWgPqe<{wc+J*Z+RNt$*<4Sa$Ip09yV z)WDZ$;Od@)ikEBPsTzEz20mE>FVn#PO#`piz!g!DO4n=PJ`KK416Q_IQt37ge2NCY zSp!ekz;|olQ#J5*4O}Y^hcxhM8vMf=__Z4NQ4Ks>1Mk$pzpa6v)WDUHgH(D-1D~P6 zKc|7u)WEwn@L3vop9ZelGAh2Pfh${Esn&o7o}+1pDf&qAKU)JgYT&nO;PD#xcQx=7 z4cwuDTQ%@J4Lm~wpQnLmYvA)W@bJcCfv~{*hZt)OZ#;geQz$-5#TNlTg)maW-{*(o zd*}GAyydLLD!i`VC_9|Mi=lX)No7*rfP9)JAA`I@laE8*t;r`M->AutNB)2&KMDC0 zn!FkL-oboxLK^Zsr}p2Ra1HWlntT@W4o&_#$fs%Y3z2td^0y)H*5nJ3Z`9=PME-y#e>d_cH2M3G@73hp$n(Nb|0|GB z)8tnn@6hBck#}qIHOMz=^6QX4pvgag{0U8dGxEKfd?WI_Zm9oQ-NNM!8De?%e^NKQ!>J1Nv@)%%YlwIQ9uSU+%! z_R~?2?)f3CNk^>Aa&|O)8)GlquH?4ZuGpJ!x1ipU1E}k`I6nk^J0dD|!yA7m>B%J% z3!On<&a}C+MUKss=sG_?qZV^q8hF~o9QW)(LZZ4llypwS~T zf7)a*{4NvvxfHwQns_m6H9E~=ifB0)FIsF@B1Jlpg^yt@R?xWEfO!FpM4!G>=NEiB z|C6AR==r}wC($xEo_|KCRRkSEzYVlqlYA9A^H{hyT?}#TWLMAFzR#>|QLTuRRv<9{jhs>6J~FR%^<{(gY@HDGS{Vf<03-w7TFsQXtPD{25A z==mV{Z~%PRs_;RKr};8;bdH#>DQM4y`Ep%lzO;OpqVPe*Rp)Ce=F36z1wQO!d_R|L zw@g*}kStoZ#LDwU<9`BUQ+cqTc!2TiAg}+caX}6bKnDL`8yDnoa9pY!jvN=}Y2>&p z$!tv@=0(SRT@3R9Ih{fBXj@-$Wvh<)ElgKI`mr4{&&5}oOHWyw2-lY4G!vc`cu$IW zEnsw++l?$NYU_!B=~(#VzoRbZ+wEk2=T>%_bp_PE?<%-g44UjHk%xHtW&00rTB%^_V^PmYPqZ z%nI2vK(_Rv-P?1C{c`_TAAWWNWIZ8%l{qPXwb?L!o+T=##vC8B#=IXiIbn0w7+0F- z<1RH;o0s4|owv;LUz3+vexF=uc}Xm^RO^;n=IiELo&@eo=yz)JGK(!`nMH{4m>t^* z?ljw4i!8pa4vR!H#!q_jE_5at&y5bJ`E^x)vc)jj#qlV=3G=uOGwQl>b~XK!|z zx1w$EK72UMWu6Y3=bRyi$q!=p-YL;)V|H(+L9}$P`Vpx1j5=p^cPlJ!Yz_ zj^#%xomo!v`(H(hK0|%1SBDwswQbFl?DX%k))CCMEiX)R${=qB^edLp|&cx+g5DO$hIXq z{t=$iW*X?7LbMv~mNbP%Pg{={o(4-@?4hmU_i% zEHw*xxfV`@jHJxB*qHf>HTG67(P1SSZO%jcsRM)KCi@!a>&gnt{*R6FvA(Wrlze#O zZ)N{#85j5*`fG#zO9DNYlUQi2K@7FWfSwGunS7Hx=&8@a`JDz9YPnM%Xy;j|o=+XP zw9Fp3oJ79X3zDz(A@rx6zvoJ0oFl-;@&Oua!z8TnDJ;~$i{azo2M?Q`ZFQS*cC*Nu z<2EB!k$j+$d?Gh=5jI8S{4Vqlo$=z`eke(&4-h?RjD^U4seU2JMW2a{(z4%u{DEXIO9)4;O}*Yn;O%#EPS#abeUO$XASyD28>d zbG^bX&}E&&V#uEd8?e-3%PBVpj4RAPOcyQfz}xCuVR1}!nTZFPvn$M7+w&|L`UMta zrpIiYU1H9RcAFho+p;nN!!wI6Gjq}9W~XnJ#iWb@XC#Yk85L%0H2B!C%0gqgaJ>WL zdGXMFS0WR7EYK;8smCIQzrftcj?GmDgr#eafHngqnm)cbImCuuPbexswvkm%fV;lCK z#vDbq#Gd}h;7jb^66?RP#pLfB>q`u8WReZ)zg`!(a4idcG{uzJH!UyFH;u}(vsp2Cl-!yqyAND4HgTL~D zpzk;@jP0;FC*EK$VmaKVam(oWILBt|H^nV`63^J1;W=stw3K|ka#QGN0WsUFpLKqesT&CEB|{|IdS zF`fmxg>fAt<%IT8AD}+feFt++`99=7K)byX{agq6oqfpv4e;}T^kZ~V>Rx<&GyXB0QgV`8v-3g=&$R*?B+Dhqvywi~hLU%rPAd;wbaqyCmn zeCqpgof{mR45@vV=*$n2Vlq9Oa!v2w!-932xTMw?ed_lywjP?_7;%F$O$@d2A;6-1U8F;GY0#ywseV$2dxaSEIK)sf_MvIp z^9PgaQjcp`rtI?lKPC6wOUAW$M||%;=MoCOpWc{*Fs1xCq}Z!ka6||9HnRaMP)= zCnr@TK#CRg$--qDc zyRZw>xTu2O=6Mg~$FZW0_<@`Bx3a{AoX%9w^c5e$cJ~STtSFu{DVC6@63>{n;d>PKkbD(hr$Xu$2j>V(`Y%{zLFcSMk!Rt&{X^ z<5F`Wi^Lb2@41+7$cX6x`TE8`P7Ie6t^F$J)d2^4RlIUW#nS*?j%Cf%LXFzG`<$f{?? zHDj&HTL)qDpuLY#egI>n`F8T8 z=ReQVJ~pmtAJ6&^U~WAI$QIU>KOhbuVy&b7gENkWa9l7* za#eq`YWH50?4C0Q_<&hZr!kfl9gpnWK{Cv--+b1(&dPZ__^h>Ae})hr))2NwyMm%FMKe)1KiAtWRHh zgg^#h%hR0Z&=gwdxsD6h8@wOi6y^Qf9HVz)I(TH3{P$+QH7|TymfPG7AO9LV{Bq3u ze8i-fwaok~U8tTekr!x%xsnBUu3Q@|LNb$ z%m-&znYZ9>!2YEKdoTM#9!pkAiMiUg%KScLj>dBe&p*Pmi1xaL@f|(FgpLnyXJM-_ z=d3QL%1pZU;qBN%?am8t>2#W_;X8i|a=k@#N&S|@mY8>AFZwF%@oi}1HO6LC+g6%Q z39RT$Jev_KI?eL|r*>Yz{_00~{tPf`Zw6?l_O@dkJA?7|V$bbK%=MCNIzTUEDeTBt zh5Z-eghzWe7i>L$pO0flTn~uBW6<5>@Dpg>xjeDWtZvZz*oI~Vd7hcOi3rg@+_Al_fV+^A#K@|}22yjS_Y_47y(@yL}~X{P-NwULE= zUOVI~9()U6ePQuViN-&okIwHqE!1DU&1pXWS)?cqylVrl%Ew>gnP^GA9GR)Y&V3!3 zIR!FQZ7ngE!5<)5;&O0*9XX=%>Nh0w3ZJ^r291};oV%3!{anuk7FvRN>X`sr{rAWWc|Re?4Nw;B9?L?%9Ej{fY%cg-676w> ztX0ULhwXVU%8^O)(mNKhsm=^P?e_~1i=e$d*>Z}fkj)}}c@TB5H_39s=V(9~@ygAQ zyWxJou?`dxoZ^PEe=ocn_~0C&ot~c zrC3g9roRB~JK4ZZ>bU|+2ixt=^#5L}C$HaROYdT|mQCpIgpL~6;jRxiI)C|IBX^p{ zLGloVJ!?s}7%BxnikYr|3t|?vyx!CazL&J-1-3Fn(>|u}KbSrLE3CssPcp;HrRgkm zwK^0xt<|v^pJQ*v8ydURy;%z5n`jT+Eu?hZ1^SOew>llP2WI^~tXn>;6%@DV#{8bZ z`rCk;*I}Q8wQm;g zE0SBvlWZLOsWC*jH-m=uN#xrgwyDTA;T#0-Iwe}h_q$*Np4gKg>TG2G_C3ZBH?^_r z0DO@XaeTlDn$7^%u}N&1g1x>YmYud?jP;D`Pn$ropkD`ir|^E7vw2HonIT@#eDqDz zc@YN*(>hX$xU>Vl%Tv14#Dmz6M||9xAC#ruaGq_Q^d!rfMdeQcetxnp>&eKRoANp> zN8#J{lm9#i{)rL%){X&j6|_xp%|A-xB^(ZGJ+}>ez8};4auqa3<1pW})?R86gGVqA zU;YF>3fB3HUxF|5#2~{QCh6JCUx63L<}s`rN&U44xYHv1xi6pK{9nAs`H6n#4%x?X z-+=eH6{JfOIy?_Uuc}zkk&ixWSulY8vJSoty=&@)U2#4%KX4v<)OE`Zf%9`%=nlwx zEzXFjeYmjCAzDs@mVY$1GdMTGAYS~G?AHm~%n&cay3}QC&I^;BiH6Ojak52Xn0Jae_pov= zUxpaj)}GDqjl=Am>pqr(_$Fe4wAN5uF&n87_V!13&OrTWJP%;(YzB>y^|N-o+rk*B zuNbUlDnAk14>PL!Z{_saQ?iyPzAy3qQb_7|KeWip#vqOwvoPRtWBiD{IT+W(GVB)Y zKSJzi&wT=0vDXb*6d8Nj0(pD^eR&>H=Bbc{XpY{)TuJlPG$zxI`JuU?Ig;k55PL`m z{PhgPKfq({TwQ=&#Tksjb0YD&#;%Ab`(>UrcJ*vwu$OYIPqpDJSq#nx-$mF$dJk+P zy9oY21OJff4#wg<*-et|hJ7TyFl&~-1$|vYU&R06@gP2n^yo|CX{;EuZ0FXvu;(QG z8p!4Rm*FplDs+KKh;2-q!u;^dXX4CXaxI@+;e`Cwr?EA?iDIy>YtJOaCt#B%cJwY| z!JV7Mmd}@Qvxx_LzrZ>lBL<&EY>4N5T|JPezY;7QnMJl%qS2S-Uj-V;euOIWuuoQP zjU3C-$}W|wF&=7{?8cjD&-r&vd(JHXooMfG7<1%>F^Kmlyo8;W?WjCn8oT8+ZVmay zRK@g4bLo3(Mz@fu@j8}Bxs zxGg{2jjaG6`@q-3KG0W~LHxR`nUl^e|EJjB1b}lR z%86%}u~rk`I%%GA<4zmFb9JuzrWvI9Q1{IE%PLJYcjJLC$!sp~C)xbERv)-D%nT;U<&Km-pAsolAmFj?M6_%MZC7 zOR)|L{djMgKyftpJj?;(P0;;{ib?W*#Z#Cc=D?3K@K_Ic@Rr4r9o`$+Q{ph9^eg4 z_X761fz2Sk;%|iXGxXh#J|Q<<@cFs~^hI`!e9p#L`vCb}-Jm}Y^gF;W;!A5<;~tyU zx5s1Mx`)vily+Pgdn5EyWRp#n&)J&o;PckFd4VnPm#jF8R02Lt0Z-~Ne&-m(D-)UD z`ob+uWOK?cBaVW)4cFnk1=c{~A^uj8X}^gb5x3ki(9nn&1mv(0@dx{saRa)n#x6In zYii^T0mx;j4RH+~<9vWe>=<}$V_Cv}GfV9Gjd~*w}1{OWN|L+y#el7Tj!1%KG6^I8xK_rV^zHs^;(r|gV9>x4aV zK~K)|<4le%O9p1LaVF9)_&I*(Dr0C1#=X{&5X{{YKk$Pa-qB z5jX8XzgM+Gu=8Kn(mSnr*dxvN!ahj$NR`zH=J~_st$UWic94(bL^~u$YmrxFy8-*v zDa;XYVm<}%oMLz`?B{LJIXVxh>Kwj2Xqt~QBi7YUo=dg3T!im% z3-u3s3b~cmZt``0hc*2W;0&_Nuy0@wT3;i1egf}GrT21BCR=xw-_tigfD8(P&^Dw^`_OUw^ebCt;*gVYH(w-MM ze|Hl0&^R|nXH+Nxal4#$GWf!D*cStmNh-~l>o z0(v^(3!XTYCedQYa|36bbsT3F?V#6&@)ONC7jeqgqr4Bryy2_~?P(st zyirWB2kqOO7QcXYIrO29fnt3&yf@Ck__(ctm&;~hvd=ciA)O6j(^=S_f_a+(IB22$ zzuGpPRmjBn^KoBDV&NF1E6|^1lMr|heOfl@0=?+hVZFg`*~9{tO&o4MKs4}Ibb*+I zdhZ3uh7oPc=Og5EEAlx0Q<5vZd-j&2-EGvz^@7)gGz+(gyGMX*P2r?{{&e)q5`0~s z-<}tki|0(7VKCw>gGvk0LG(DRH(iyM9;R*T0u!l;R4c z4^mtK=LV7>r_AK*nuWgV|H!R@ui4?lJk~$Nt)cb7jqxLg$KDtJsN8;sG=0k!LJ$MH+8jlBY#A&1A zj7HBhL{Bfbrk!~60k;OeU{U=AZVk=}6gA3vdDzxH&Ce@(DaXf@7!>Go0LSLcxN3RY zVEwC?%X)P6dE53sq05a2pXza3hvL@J7TF z+=wRx03SRbfjuDU^ubH&Iw!ARO02MhrTU~;*k!~TzYz4w{#BPX0NEk^r@dTAFl6;! z&q6n$T{`p7dp*S)pzqjogzg%Xx&Gm(z}ou~GS}_E`y;Hs6i;*3FhA{K)39&*^fR1y zfp14NxhApT0<=?CXb89uaQ+4Z;xm!RMb@eFJMn(Ug;*^4w`%N*_D_w7v5}2RgU_L^ zp(KASX2?G26xw+BnH=b*Ge)(yu|WN14mXcmz>U2(@Y=EO9*Wft#Xk{qgwMdRE?w*2 z^HpRQ#Xsr18reW~pDV>C(FfHpKwF&-_`8Tnz3U)5mDI5iurs_EdRK`{bwdwmf0cs0 z*o5okd2QoUFrO0;3mVsPGw|I8`5YGIX^gW0BOmNWC7p?sVlHZ%crS-GbESPf@kxy# zN@G&?o&=kQIS+4?*A;ml5m%$wD(J^KEomP?{IKT2he1ruD$ssqVt+g0p4|fbr4@5O zqd*>4GVpFh`5eT0DBi~4b4dHg8I4_o5f3z_#6AY+YO~V$K*nSta80}}U=uliNe1F*6sHCqJ&4(n z|3H1qeuOMXs@@atl9!8tKAa__m>iuOnt*v}b#SL&$K8N;A6B$Oak);=W;1T|+HgiS z8}ARFMjrbptk3seaqC!!d>MKd+kkc0>bqAukbEQJ75PWx z8(oWZA#N*T6DnV650)VHWyfAWNjm>X=bouwii5riS|<^$Dh#x~i1BD?wV{3k_)*Vu z{l`J)Y4{XI#=-8O{qS8JGGAx2`G;X3-OVgE4ho8^<9JZz*&OU%M5B=DC6ph5cNcf<4 z4&GhZ5NB8Qhy19IK9&1tI>mm%CL94i+4dwIH&ENi0#2M+Xu-INpMIpYcOu(J-7IsWbiIVx*hl5=0thNBE7t9L13VGVSxOLLzrJ1 zhBh%Keey>(N8^iF7-8wc~@V@d&{x}FZtWl zjvIY_lIbll(fJnYr^1luHAZ`f^&t+(eM~`J7Qe|%b4P8^m@+XYn!~${c)zhk z7q~r^c^4e!yanyNcOlNs{xhB>elF`J&X+6uqhNr?K3RvG=2E~Jh)6vb=*7PIJie>z z#XHSNJs;@F#hMuLLI2c6^;yGLtBKialuV2=X$kbU-;%b{;R>J$A5%#z5MIk5+4 z1Vnr%VnjV3>d}5wq&PIzh%HoRmCNj?%kZ74s1s%TYOOKHK(-y|$ANw*1}~<|xa0@W zxhUF~tNUAeme(73-RD62#}jatfz~vvSzHV|a^ZTNHwNRSGe7dXPwd;EgE;T(U57EZ zkC(@rq#18B1uu7;c9iMB@xWMJ9AoV6!M< zLu0444C9~CuH@~Ad)V#Z32ut@lb?_ZACkqenM-Uq+mCqJ&(KyNk%h0#tT5N2f9k6i z>k{=veb~ZLc+YK|~I!O5jti{!~GV{;TH=UKy_GN#y!W=>D!e@a0 z1NwqxQ#z6X@`nypn>iIf4hmCXQ zimZ&mI4D-E1N~3oJ#~a7SKx0`7q!QTA?aPs`nrKu1M~lq<}fluhq@;AzJN38CLus= zF2=i_L#PLycHyil{&e5P9oz=z0QlgavORC0#7FUYuD=ufav}aa2eI@Q5p#ah+OUVt zbfb-m?O2};QS8Xeushf4*^zo)-@gSi^<*M^AIw!COAI~(-L>L;na+qmO^x}Q!|5ts z1Cb8W>rJ`l33o!lx9NZ^xl?&H=*5dCdMr zpFViT+q`Yhe#AcOxiQlDLV^b%i?H!ohsvf8(Dy^_peqja{3#u0+1NZOmU!Q{AhEZ(mo#t6Th?{|U^?bs{)f_RIusdKFIcK<83rfbp0N9c#c{LMj| zf5m*MXIRMRoP~EH<8YI{)7nmZ9-4O_=7C#ZJ5Ym%SjeQ* zpS0hQ<5py6`p|~{NBQu-jgs&9Q@k4~M!!U#yK~-Gh(k*L%u`0J3-FB{;PuZk=4R47 z1Yjed#`}Y5DJ(GE$U@g<2${Ba=Fjw5jy?${jJ?sxRgVZnIt3ggUbhwk*wk@ujrX&m;Zd=~AKdGOxTSUli@&mv^tJR|&;B%MLp zYhn*3osl6OQF%aRl)n+47!~hGp zc(?h&SQe&piB`aD_)aMXXQb$xWD(yhso#@rg)eWMy~>;k8+l;kRMEMJi5VvK82zqeze7{ZyL2{e{7 zNH>0hvr0&1JEHx*58pIE_UK!P%kVvDZaQG6=!}vN{AhEq5W{y2NvJ=5ITs+CH!hxq zELZpdeZL^WujKJff^VJ_8<6KjBZpV*PqJ6C9Q;`63wC5CjfH$T>q>j<3-I;f zyK3fH=DU?=M+SWnMOVl_^gWa}FcEZ8-KXTb(s+(4&!i*d&Pjj3xQHUi%x) zu3#*JmGkrX7E9Q!3nVRPK^@xSw;84Hh*V!&=1(v{wCHm1P8hz8^v)OK;b!68Jmyrg z2Y8>>%KP@nbH!t>gsg!roWCU&@0UG>0JZZl{IQ-J;R``;dT(SQ*o!r^|KXg50PQpA zJ^v-?+)Gl&m${t(%VK?i1HXKbHQGORWBe39YJk3BPD3K>)lIm25MSy>yRC(Yo3j+j z=J(trhLVBfhR@?CJ)eQ;?_f4y1j%@`96V6>i?_@ju!l80a z{XV>>p_su)nyBA@fSq%U+f;w$i;!;Y#Rg4|JDk=*1dVvQroM(4r5lctjuY z%tAZ@eX6`r&pKh)T~Dx41B|0Jm`e4_!VLf z&hh!=dv_J1P4IH2cJEHlBoDMUNj&yl?>~l^f@mbZD&O{?Jypj@E^N>n8gmcMt#Hss zvIV;!zdNO~WD`2d(GPEJ?DFC4#|g-c0KN4=ACKXg&WZS-gU{nxkG0N+b1*?X8=wO| zoQL@}o{u*c4$zsSHk>oUcL@EEjiMWIE+$QhUpn!QhHU-MfJ?R}pwyXz@0BS&NIJI& zG_>&WlOO{L#7pd<$5J{;42?lb^-NNlJfxQrZ(ls5hishsII@ermm6C5<^8*Cw|GfE zW>IVdd{x%&EC$=(g?i-2Go0n!bvKvUlE{KT2Ta7b6690Sy7*hrXX(T z!kUVABbf|m2k)hU74Rq?uoiMaaC~J>;VWb4+KZd^kH|z`RC5Hnw1{w_<*ckd0`_L<4Wc*`esB7|4VP zvapMffjpU-V(~ts4gQXgk8LVR%no=Sxgp?=nHg{yW(A!5&4K&x`%Ylp-M0kt;nTSI zdj`l4dRFm)+=!!d_sV_{wL$vwUEmRp3$}F#Z}I?#GsfgE=^)FbD~<{53PBF`YoM7S7I5=w}W`O8+?2QvPf-QRQ&n<=*!wZ6mKIt;KTYyc7S4g z$wU*@pB};PrM~Ff6C0gD#x3bO{tg1k_TXC3eZBuUXpv)Aa!gpZFY^0I)jy@SBprZm zUAPfvE^tPJYyzDPB{`;bna-Ntg8uOiBS>pK{@Q6*H{y@ch&6tW_0}1Ozj21ROB4J* z*ybR~x&{6pejBF)?*q`&H~+Tj3`5N2EcU>5VPccLVguqeF0%>tz@`&J)F@CDnz4=S61dJNxt8r3gQk8*sIYv>q3zkk}o3J zz@&~0;C1g<5@e7IvNe=v7~6##>07p;ZwctUFMTJY`knM0Gio{@D;CA|6sbiWTAe3Mr05{H3wApiO!|K(fW*9JOo%S;rilr>1kP(i~$=5U+zj zpVk}{SYwyH8s9N8{$&?vJ`K8vmc=+@O0u#pZAp;i=`7Do+B2@}(l8c`eGJCC9`CE~ z=f^Zf(^+@GVxE>$)1kcZyNPVgt2iTBXAu3q8gaH2-$|7sZBJ%P8EmrUW42}+#_e1u z&StA8Ct5_dhC}`s)0oZ zlfI*&bA|h{Ud{Bi?V-P?;f8GOi(;QPSa5y}b}$C@O|W?zVEgJ|^B#cBONM`{V|O2= zbBOSXu;0`bxNzps4ZGaXc+UX6Tl6)i4ot!x+=}N0*u9Z{ViD*&#!v2d;w-Hb=ei$@ zV*XUb@92Fp?ThMH7(;7ew@KgE!p30kLs-iSyJ(HXc}UFHr|pU2SH@J5@g)OPJ_mKJ zXfF-4!S)r>SwA|PDI(^<;hiLdO*w)3uCq&nMrobDW59;9u&%QS!BW_FI(zHGIofx} zV?IDj?;HE}2#6#03TYhm|5v1Y38 z+sQ7_`A|9=O7?=ziK_3&?9d}dHljV-Py1I(=q>30>1_qZNV=L1{l6@XFCbgwgFa9j7g6SVhxV@%a4uzBf$N=w;3t5+ z0^Cx_z*q1|NT(R~2sG{@lsR#x|4!_KN#=CNaF}iRbmU!Pi5SdZ0*hMGoVmY-3 zx?F-7bRtgSgzUTKB?J-IpWv*KW#J=yt50%nfKEE$n?R=eMZkzwl6B%S`HRx|Ti8*8 zMg0?5Ki(H9ng~2M^*zWd=mU6l5HvMV{}?~L6Y0jeVfVv0JB#-g`N((Ted*lSdNw;B z$qyUi@qHxD=0-K+?~le~-NN4z~#Vhl5!qjWut6zdtg7dM>; zuvVD$XsaIQnk(=P!x;35xy%}mc<&>4=CF1UukiN(nk=A+&Ku*KJU=ge%Yyg{V6X*i z7E?Sm5plCEc&|h;d&K(f{opt3eM6dZ9w*5$n?Ziawx2MIJBasM`+nvl$N=Pt>^|B0 z@BckA;VJ3dcM8sFM`b;VbuH?JX-&sZ73cKo#MyTIowYeuYlZC$-m3}vtOLNO_rZK~ ziP?&8dg3aqme>{8w>nrdRz=xO7mg4*1@7QGf8xcpl4r3pLiP`=K z>0Kx0o$Mm%l^Nxou`{k^j$&1pM( zO`qwygzw(GJ-hdj4RgQy)#g>t*R|x&DLiWae*e-_bM`zcU30DkKJ8lUUNUE{^lK|t z`B#Ua?Al*NuvXnVwZvLZ|9R*?7yi51x}b6$eg&z-T3d>rcc5P+lCFPVZwY=brOrw% zpeg)XlC`{&a#LYlas6-Vqn*+k5Mjm7cGRp`U3EX&ks85&^U<(080v+3sJ+>mF|{Of zYORbR{e+7ZKjN@rwFHp!`1uAUf1T10{W6hN{w*R2BITu@3X&1jB9E(5i#GUsNmFZM zB*c-wR$^6uvqtl~Glb~gfS*k%mRh}a>RPLurT(qxb!g?f8&_EIu+CMZK4ZouAUfVqED<3!U58(Sz)zZ}0MM%r zW9X-Mq~Wr~rQWKV4c67At_qtq*Ht;K&PqQxfeEktR;jnTZi98$&s7b!BmI~Tnvi~o z2kG#i*g}8!ohRyn_^p`+`iUlK?rGlV-agNIe_5%FfFH0x&sAP)N$I+BRZ0=@P8GgG zzlB|cwvIj-i5$UmAJUUZt@wi$Zy_y13fse~k)|Nc$A<;<`?FSjbR{AkKw5O z>Cyj;L`sZk7k_;9FwzVxddUdFZ$p}g^d!;}q#^=-+mWtEdIV|ri;+k=)S?@IM7bGh z{>ez>d89cAfJ`?5jz0oYjr8K5F&?Dxr_dkL9HcB3<3nmi>O38Zpkbf-_!S_e(Fw$0}B3@#hM0yVC6{OW?fftANklu^5 z^9|r3%{T`>Bke;vfb`^>;L}*(NDtw|`Rz!3_`_JQAZ2f3o+*zsIUfDs1#mOc ze541F?ne3|(oUp(NKYZXg7h5H_yq73FX_^eb|YPcGzEc`&nb@}%XAzd$j9buInt9z zS0l~&0CXaC;tyeVBRz#Q7J*%BALbuv8PerQcOzYm^bk@X(u+tBB5lSWsJVhPzaQhr zrl1|E6KOZnZAh&jWB!o({tEiWVSInX_>txyU4nEy(mJH=NLva13C4%C8R*Kn;f}@4M?VY#JVCLZD<1WGN1P)Yj@S^rM;a&pxYjF1H zB3Lu-a9MG85wE`p^1b_-xMX1WN5vzBc62$%?19bg#}mW)TivTY+^ zWq>^fm{o(f39v&WV9kIX838*8SSMhUHFdF3W3P;W;d})>VUU=1m5i$JnFj>cn5(e z(XGfIwWnXe6-lUu1yZ9kfcr6U`+)nJ+@|=rac|T-eZE1zK(Ak@(-#QkRAZr`z>u%h zf-M4WI@Ty!bGFO%WSU!eY9B&wH{~nBZbkVL;C>9;C4`$ds1J)&eW3R0fRlnXi{xMB zS8f|Ww^eA-Eqm>Z100idhh(lDxT}FH5-u()ZdyZk)0#&BdtAF=?&BqUJqugh_rCoO zX&sIA9B`&%og;Zt`;g`Y9r1afT$z+Rh8|fqP~)MbTc3g5k?T1hkKJo>w8XSV&)a3l zZ8PqST7wF2yna@hQszUQJk+7JaWzt+hqFJPxHrM^6XRo1j+Xe=vH3g4w8c4gn|8(8 z_e4J$!*4tLy8YZ6_P@M2|Lu4F`z@&@R3gl_xSeBm#qKse8nY*ws#81s(ij!rF^F%v zeGoX;l#gy{-Cy)8=rHCOG)Qxs+hS!@n+oVZj04q^v8FG17WyHN=P>v9_`TyGRI&O6rg<&Ntx0W(I}_&air+o<(YQSQ z!Wex)w0@CMzc@;Nn?ZlOo_`-KGTdgk-LS~8SQV!?-#9nOwCU($J^F|Z!tUc)ouAwm z-9l8AWGYvEKr!k4A>iKvd=byUmt+t|R+5u+fKH>a4!s=^>cSdwHb5w2#@OSfsFp;&0J!J zENMPYhWPw1mQUIhM8;4AcfqmO*>QoB%5odMKIrhUOE zbX~2^bnG3fQKxlyoh54XWJjca=1ZwOe$;vGe^Dm`ZMV`Mh{ z9;{u`@*}Ntoxp7c?nxO}k}XF|Y^y1^EoNtQ?k?l*sJurFCGWgFs3Y0wvUoSQi@)RC8)T_f)1Ie3G7)v|Mg2b1 ze@m_}kK<8Z8pX1m`Zj}Ox3EjMOj_Njl{aNOjYgy=N#@(p#@0W=9#9*&NFI*>mhv+8 z8d}>-B+10-^Ep^*-i{Ux`I@Dg(U>lxZt^RNf32>QL$a?g;PR*?4^>t?A!YTD`Ia3E zJw$yU+JY{qvewFBS_sh!a1n5fua1th9ysfPQv#gl(9D0`4=4RA;8u5fO;zORYmuTa6a&V4X z1*{s1?h_xM2W}s5eT0jP=H?V&MQ0G#Ab`@Zq^{77JC$zpQABZt$AFhE(e{iIcy{5=@$x%z&GOHpqXN0(vHmA2>$DQdBu2*eSr$0aInr3fOtTtbpa= z89Y&Sc5qKp1h5g6^MKPX^FxyVJjr?v8dLA1h842!qL{n5YAPc;ONg|p!_QXL5N&4T zcB0+wi0>T5GsbZ^-TwFq-QMHywK{dJ$8>pZztipft*+$lca(Xhv9zL2JYqr1sg62_ zij5-U1SufDhu9#^ImLEzfG^7UL;T176U(Z^(+re-47?>H@i3RtzGxveDmBTd-xS1u zN`UK>`6209-lO~;$RRW*msX?PUAo;u83ab_B^8dy(>kgxCpzlTb{S$@K0IT58lRH< zMMNhwGTsi{=YdOmI=Za5k5Ft1FcHrh*}w=Oy12-modeDl;81_)W0+4yJRU%~?#;oq zTwa@KXs{sC(C)=lDs)gA8HjVO2EH;Ustgric#^)rvPhlh0GB?x*$v!S;+;dI`+4#% zfSmQgb;+SP>G1Lv0lk^}L7Z>9#=c1lrb^dtq2N)T-~495kf;rsvz>aHl1F(mYjfX} zbcEt_Pa{sK>I3QE=YSmojO1R`2O0?3T1c?OL!xCeVsz(#N3jv$$-V`NdM?SmLo&Az ze)t!A^s;zL;SPCkqMdY9KZ%=Sfz9~A1S9-&v?s55xwPiN`y_92(cnheK^tZJV^KeW zB`*-*Wb!A}O|bo~|CVhzC|1<~exxRYmeqxHw2kXz@V$zpj6A;9ng07YF{ufq!w}UmW-s2mZx@|Nn8|XqrrOwUUynPS;$-1?f`# z<$N3xqYGgN=^9usrxTTY-{W%4R3&dzQvB@~>AI+t)1HJbwfyqmBUO~YsB}!BYPv-1 z(da^mUb^U<2we!*N!Q&9eF$SoSBjD6WSe{XHVne@MZPD0!8Scm*$wZ;!&LkdoIa?fpNU3@Cj5zuT@;neTt4 zGAIA1e8|}^&%8(*M_luBb8!$Zuhd|0KHQGE%1@Cp?G$tYg>;B)Ua_(*r7^20a;d_&dSU zQ@rj|?j400d8Cr_sqwoj3Sd=d6Q7A%`F^XPM zL~#Z>Nx&BakDoeWBcb#9Xu>ngb)ZTTLg(k0VJZxl1UO#fG{FjWPvfsV2fxG46=kR1nIpDs3r84dp8YNa@YibiOpgi#b1B>+4^gZ&7PWAu2mB?cjN^2RHVo2xPBmje*=cK;Up(3>bYLBkEpJ@R04pJ9o z${=G}u|=3$nMVr|h|NO3Vjd$zFfo)$R|ToXwv|Qke!#`hpz?7b@HL7*e1C-Jea%&S zGUzho%GX2k@B0(<`FiDf0C zfYF2Y#kkrWcdd26xRdC*EX7tCxH5J#f>Laifz1*<#a0=(D#=t*Y?XoQwG3Nj;8rce zRvEZWWYYT~!-?RuL@)4TBS8fBuP3fz{YXp~!e+ffpzj@M49@ToPalH(w*-&2*(75p zA=ANCLFPck{%nI-onUS7$1b9pV})bKh9FMxc;Q51_(ug5#7+am60t6FF7uHni*1EN zf|r-|gXXL%vx8f$Cz(hY6S<>|dR2_ag@Qj7!mk`VcuNu=C{mHvQS`yvdMTgzR^{*Z}0&6MuZTKH!U!3ToWuF@YteS7dG`&>xHX_Sgn zsU6#o>Hado@I>rI+P_VRY-}}3I{2XExfuJF#6vU>1+QPvN6tMoc?Y#fmO;G6k^S`W1Po09YQ2x97~Bh1b|@9>Da7E|gCvFtF*3$^j5AV*&KT!0&L|sgrFiY+9u_kBO{{9f+Wy6n2X9n8=SLB*l45&PR%6C*7L}|fsWZ@G;tesuuR(CUpQuUIqWZ@>G=5kJ_)x*qePDkg5w#su z&e#CxOT;STz*TIt5Y;4XWxpm#@S2X0kx1I@jDqhtszfS72IR^SRF+8QLI;vpKsw3F z%z=GTDK=P@_uEMK-#U zW%di8avbZD<)JZPs2ryP$xM_Cf1Ij2V?1A(tc@|rnXv&R>cr4F${L8UcOWF?h;P^8 zl{r;RHrn{yu!;?b50gz2PsJXFRI;g3?2ctfG)HJ4`Y_m%Y_1@Y#e)~}mx?4h*t6Ti zaIKt%OI|LQ5fd|m_DtaE1{gCZ6|>0@%TjUe!WgGIsYIG~Bx1{9RVpbN%*Hljl_8aq z3|1it<{*7AOqi1@w?BZmcp#-cpna37kf8^WyS0%;-XYeyGW(KL1DC~ zi#89t#a>`p*JfCxD#q%Ou5Bcd5QEd&l|@z6jIdXd=|=l>xGmSUOr@K1KLV;^$1|%f zVuKy46QYb>h{SHB?v@4;iP-O%lOCbfAj)F5!87Te(e+SJRd}47)+n=Dl_(sKuyij` zS4>o|ICOzZx5YUgv?K~AQ(>QS_UY}3!WE3yUdCR0PNMKGRrZy5>l1}LXh(mcE=&{# z!-44m;+c(!!d*;ZK#nE4IZ-`-p-KLTTNEG&L;E{f;5$U= zp}M9e3vWRrJv1d%Em^&6#gU*YNfncY(bO_b;R68 z=44?T?c7VKt;xb6ffh^3w`3T`j=Uf7x^mYLad(ChV;cg$xZzk6ua10&&)J*9l2bk zuhDTD8;)9{(%1QFeuy|tV;QkG^LCxDVF?J;*w96RExs0}jbBijSJ2)JjX~)#gEqUl zp!C7bUorA=KI2YEOKy(ywMx$T=mf^VbsTFoz4Ss~gAnWwK@4WC ztz%D_UgT>cp_;Fzwpl)7x~FZHZ-5kpw7FTnJ!!3KZlUgJKI3>#Y?`mHh)H9d=G&9$ zsOAT$trzm)iS_a|Nj}7%y?o>7&ldKy>4`o=N?{LQUP|E!L}}oYTzY^nDv37gLfOMt zltNL>JOi1o_8F66ZqBP+?ekGls(m9RoMQ@zN$jSz%WHgD>Z{|>mafqmuj9}LVh?c% z2c2}$S0Euq)oG*Pa`w{AZ_|G%pK-pIaLU(H7Y`Cn`Nm4ZtTAa{8#7ZsmhLLo)lfD6 zg?0LU(3Ij%V~biSmKji`BS6s>)wYso-MJ$EJ9x{uv)s`E@OB`WErD zk3KOi@ljI(Nqj%Z_2M_C<9d;&sMD{R#(2+~*Gyg47GW58%^c6sPc`#hiu4PnafB!J zg4r%MQ|bkCFD*5IUVO?l&Y%=a;VE+x2wy)6JpeG_W5!z|1k4);L>hY>6?O7nz3Y!R3tfUZ%lm>RPJi zqcs9@3=jnqv;x&*G>z?T8f+OadItA4>#4qO0v*uXY$LNldWm*3N~!t_XnbFtaD7jD zv7aeJik<+y2N~UynySa~wChiXBw?gnpZv*a=}zKLMt>$z|2x*;&ka#jKcBtLmxc@+ z^=rxb$|bJTL~m&bEU~W*DY5z^X>YBmqww9*bb}_EPDw(&j8g9#y4^Ni#31QVzcJi; zc^87DB7bMpvxT^2`<>CEYh}|%o+%lo>#6hbdwWbujNdZnF) zw7|xC=|;8~DcxD9^bLm8R;jr+81<~VlG7UvJ-l246SOyOGD5nQK8&CSbQiZ6&AU0{ z7Nb==!_AQ=u2hfnWqi;Dy#i00((f-bq|NADEHnCc*QFDTD5Z2=I#Fk-9{+l;(kB|_ zQq|d6tdoxxl^VH|-+^Iq(K zo@ihyy`_J6q7M`4B^C1tnKraNP4Q=>8MY0fiLdDT%3j%TWZ5e>4Ti2hEa2Cq0=C`F z_V9+(*S3X>|EA!LZBnMMxxH)C1TWfG5=}K7i~wEk*7wWZBUNjEsyoMsW?bvfk*-Hu ze~$D#y~W~l_F`*k>!SF2vA*e7(BAe4O*>!GbIm!w$?Xu{B>$(V2kDy=bVFMsW$zSR zHR_lTO3Xe>k@<&(;VOC1Riau?;V^cZ(bqHZG;wbqnP;3Ku2Zes*f5SYCU`Q(N+wk6 zcv^d;aVElh^N~4yWIYGxUUcn|BiL~J9C-vDXqM@YLA!HVt+u~)2}@^z@o*{jf=0&f zEpyieeOTrD9EypU7||%@wOBh|wf+tkC1x5~Yo;B(~Kchx)fL~KJKkc11?kiHI0GvO|mTE!aed@r*0dA*&U= zMWmyDx5kcrwD?*y+C-c2H&?u^iorVj?Xv2jv)@;*fV3aQTvkcnpTkZ7^Hxl-!Sm$8oz zc{{$ZW0AyhcYJ9ER=07%j_-rG*$!7qvExf3;kY}#B(ly@lu)8R@fc6>=pakx^79bXbN9j=sO$Cpcwa~yO&-0?Lb zz1R^acLr&7m&27(?D&#c;k-$)y~97jZI$zD5|dIa=rs;kO0nbH0pb*AIyw8=Hng4U ztbuc|;*?s425U)r|Kad&(NAdb6IiXGpB5jV`0QtbFfxKbLhKZk~ZO-7V8hjztSHyHW> zcoD9Y2JC8tN4QcNuzLU%*|DB%TE)3iYOjm&J^Fyn!j5yL)c%o##JN&xpQUlGl!hv$ zE=JcQ{B%G9yD1X$X(Sf>5zsgnO+)!ga^3y5kSu&UQF{l%9QHd-tYRl{EO!f0O#<6G zTW|~5yoO}q(@EN&fpFN1JE;sANaZEml8JCGRKv)e)`crGQ;@21IQa}$){?+~VkE+a z&=|^a;WJ!a_9CM@T=)!E*O0KW{1>jU4uDMhYiLbVqYBBwXSmG15>y#S@o;&FWuwaY zkQ&ZJ$?%s`b*IB;&~R;xNzQb*@ENWXL+7YyFNEC&At{y-D)f6iDz`*zI}9o3Oc0Tf z#8VER?IWSQ*zFunjuR~+cEaKJRU%vjek)pK~By1;x9wAy=Pa@&GE}T9jvd&zj8m*6wMXE*T1#~FUh6sJs z;_N3xfkeBr2gMqiNep(rBd1C7Fw)tF+L|*gozAi&v0@l)5p6S_eHo`mv<#{bcFv>) zJ&GjeI5&~gQ*yV!xmJicGql(_8~Kj*64hPK&q?$au~p6r5`DxyYn&IUtz8mbi>gEG zLw-Dx*wOy>KFF82EIL38Q4YuO=)l-uNcqKo(LqrgL_mdJL*j#@Lv60ONijzE)b&jY zDmqLoNk~COhe<(YrJ$n2#gd{FRCI*c*rHP%AqCY-Cp1C|s$GTRu-K07XTQvZ4y6P4 z7tdfLi5c5JP0#pM=3}thqZga@upl-hFvW~+G;^bYs|q~eMK8r8IS4y@2i<%dljc{(GSch)u@^R zTWa)6GbIr*GmCy@)}*1au!%Vc`GiqZwS2yceq+|rsG2HB{mpEqR84_%U{I|&Q1T0i zM*}t+b3l5U;^$QLThriLnOOZ>vrep*#D8n{k;IoEiD$Kss+N-2sq;|9l}8W_w78~l z7IXT%w!iQMee%3nPgY?%>RWV|&PpM}5`94vc&53Su^u%IE=P$8kD5Kj1itkI#y~ct zytJ^#OzD&8#qHVxo&6`wYG$9$U`*&<(+DB&qU>I?iON)NU)po6X^`TH%}UmnYt3fX zm%P-FYt2!tA$h4F*O@t5o8Hn0;tTWf#%O z63pe@=t{FF>J-(jG~4Lb{NdEF(i|&3UbYa*k8%CF82BnP{~pv<@5Duy4^<$CQn`Y&?qyu6o`?E@R+aShC)}-z&c9UmiJHpJf z8mXMgHZj38*x6d>ghk;5bC4)3Fh3K_G0Z|ix}AMYY3)_a!bCR<8)1je!X!5f)t@qm zopp47Gs*T`#m*W;PZEV8mEcU*oWi>>14Jh|HC1y}be1UtRntRWTC_C$;|5ZIApgX8KLu|a$M_;_RtE?^%V9n zdx%2m@_U$r++szWZq+(eT^)T{(DAl=@d|D{=_m?1UX4z?=ynDwx0H@9(=p%jVwRab znIbATGx(Vy9Z(l+lQR0u5N=*Zkk5>MQUS-(g3pa=X;jNuS3WoTlF(lM%8(JQuqQcR zyTmZo({Bvv-(ACOZCFiVCwWSj2ej1jqiNCCv?W(~mb_-v(@r<;n}+V;RNY;Se7_d{ z(i6U4n_bO~fx^d>*k+_SYH61|#d>28X-~Cyz>c18WHM;2s_q09 z$toQ$2`@{$Rfcr@dXQOVNOxURkccN3m5ivfccSO>Vu4BzG>i?NiUW-r$s1=|VDyr9 zAQ}!d_MueaPI3-1WDM3V^I$`!3k6QfqO)B;iVNl#u}cs~Trgj|K)Qm%4e8C$OVKEC z%1>eR$tX&Fl|f*VF+iGmaUjhaWf&&niZezT?Tk}( z1iQR3y7H>r<1ElUwBOigi|8I&RORkNEsG8?43^Sxk2}C3^FavSJc-YesH~LGaWttZ^ zM$#x%`z4LA48xC%i1C(N8)ZIf83QSnml%~3pyHP z=J`c|(HiNhuPP#GEwd6HReb_OGW!ECT_KQ*h8Zpkj*dmHBCch-p z#+sH#sOR?;oF`(Lq{*` z&73sK5V2f`Kfy$nXBggc6Xln;2!1S`xV16xQSzjH=ZVX5zOAk3N5Zw$C!? z%*kAkXGzYIK3F!3qqF*Q2GA%Cu*aMiSq_D?pL>T>GE z1Y)wx#v3qpPp%egntsFBog%c+73!1>QK+*@gnDqv&Y5Q1s|B2CwS2y9Sd6ei3`0M` zr=%WSxN{~Nd}SVqITK4_6SY_mF5Efe4Ifw4Auzt4dYa_{di-GGss|VDoRJ3pRzyTb z)`^HbR*&q^B3!t0I*jSANQXRaH;YI||89*P`)F}4++n@uG*`T>ioq=+-Y!q=En+}l z{RH2{g*&H8+SQeef?QTL5JN8c@ZOUPcUb!%BU6yQ}xmkT+i>wH<8Rej3-%5?uZSaOAQU^~Yfl*nhz_JPq+?`rllk?@NnRHgY-Yr7vBeR57~ZDCH}|#w9EAFzPA~ zF+=TscsGcoq>za8Lkj+6IXT(L@1fM6N__;Yijh`wQUwx&BU}*imt`h_n4)~& zGVxf#2grCB$vSjDj-%}Q&K=~$qZ3{9w1)*rN9g=m^;%Hqs-IKcoVexV04?V#|P_8)?o^#^PVX;n}? zjJN=KNd(I6-Uy5E0DV9gAC4v#NTkH=Dmw^%50o1Q$$cQ3TYfm{!K`hnau+lQVuo>s z$B7yJ$;qu!fw)o2NV(NSTLnFq=s=<>yEmg6TJa7qx?zm)qMJrqgm*x=4)p9J>xv!dwXK<4Ww8#9UXXYIG68L&54xTCBC`UliMW@sP4g3c1e;& z82kGa8({4@kgDVALE!fp#!$6f&C?-&j7mtorry*P>I`dE%_AtTzy)Fv58I337ifzl zr3>)K)=grNh<|KWfr9u}gbRZ_;lf@Nu9l2dWA7cfm{C1Q+`+yrP?Wx{j)P91R{QvO zNH$QXOJU*C1;G1={700>AsJNEx=#h)Q*b`}1X{$Jx<9d?duY6jI(t+xCv`VUc$?r$ z7`LZRYX$LEjo(Z8R_UwjE|PF*LiKeQlF_cqa3L9eHGUtJ_7hx}z!6bNfPY*VI7-6n z>pmbcQFlhLqzpr@U(LYP9X=mNrRbwRM;ZM$hEMn9L-*A|{kqHdhfF_*Oh2}t#v#$~ z51H=Dz9oGxmYwc^M1Xy-5v#ZxxC*fEHDc8yu(JOn-fUhi>3fZ&y^B)pdyQ0v42-r9 z;1bH3cF0DVJFAo#Dw|7&vl?gxQQJ8dXeH5v3TMrrCGTDR9(0ubf*DRQK*cE0A6Q&> zz?O8tX29MHVF{{-B{J@raeFJs0LMKu5t&O)fa9K-$da%F9QVwma1sHIduFnnoNR#O zo|#H9onnCFo|!6;7#!fZXO>C6reLcI>WXHCy$iem$1^jVVP4@fYRDEyB$UPd_$g-I zUX1=m8&tKsK~=jORB#RIV6p|*pg46`3#S;U5JEUDff^yIX?MG`>Ich|StDYDoz+4l z$rK0(ZKz9N}n*WvrX;!B9C;(HV-3`@oqx7kv1wp6t2UGS&x z*Txa3JYv(Y>u6J&Md+LUbz?(!S~p7WGM`cB&7vvuBZ}Xm@vRKsrtysoe^6Xr{u|h>b9!@~ zBvbx+DdZM6#6WtqYU}P+ZFQ|GPlKy9Y|CrUQTE~8Wgjl(pn?T)zHynCgY&DU1QFr< zKFqSV`9f_co2~C6!OK^dQn}Ez>a0@8MLD;`E@vh;O3Luoexyz?0;vAttrHrVmQLX$ z(Mm&4)oF>}PSa_$L?zQI9}1d@9J#wU zj&!{tCB0&I&I->@$E{dr8lEx`=&IrqGdKvYMKe3?8 z(Z5?`$39w|kJUz-@wzMCR>k0qh_}m-nGpl}>fy7JkJUz%biIFL6y&n1ff)NkT=RUa zHZleonSx|ry$6f@@^xZ&Ua%c4zmMXHrvK@@z;FM@57Rz(W)SFK0jrD#`zF{GT(m$L zP14gVyB8QnbDU>R{B|pe79j$q*@S)}H*gsYO<*K`mHFf0S&YQR={gp9&sg z7*S_GUPK}+kpg?6w-{`e*+&_O)C6^AxogDfNY^Y+jYAB-&BJ15c{K^!E|8N6Q&+;i znVbqqHH%Cv$FN*RWkvfOa&pl#LA2OcGfrjA1t8k-@q=R!H$u+$EIJ1P;K}t~NJNif ztm~yTd9Ee~Cz;phXhnQ18j86^Y)x=dZQi2oj_$!YnYE)shl^fWJOqvkTvyl4o^qf9g}>Xf{R;^QPmQFgf28=ueAmo(Ff3FLTb znUo}QbSN3K4L&(bj%JJg7?HrtcZX7bLIi9HV^Tl%D0m)BQWb~t^lr|J^WF-8Geyx4}YwJM{e}9hd)+L z0?!`bA;`9Q)z2ROq&giV=3 z=rYPofh|^b8F3ZhsUoYohJ=kA$*c5E!m6--hLG?yUZ_}Ea=6GUv%duu;V!jR9-Ba`D-$KdAH53K&HxV=S+y~yJX4-2tU9rGj*2~luqfI|oE{#5i0A-|R-?Ty!UEj7 zvYI5G3h*r=tEp1V5AgjWt2shD69K+?WHnci$g0FZRG+}p2IY={k|f??3OwCHG$pH3 zPxqIs+BTC-oI&Yd84Tk0MMU~nO(M;G^T4nAQ;|yCL%D6D_1B)%CX-VxT7XWT&BE%I~wo@$Nbqg3(dCaVq2;~`f6&~Vzfda$%tDT z7*QoYLW{%V4T<9bDV`MwT+l!~$wCNR(8fZL#4gHHto%?FxL8W2yh{ZxiJgqF3cgSh z*lZxRKS}y5gv1-vy-sxhyrg?w1tVzP>uO87&l24#aUtzoBXOQ*Vzl)Xm-i%jhZ&3` zPaR_GVR^CpHsLjrmt=hj95$Hgq@JV=hmDeSVD1rOZn>;{ED>B~U!=$^gNE}@-I869 zn^jJf89Z3Wz=GYu70gxn(JC-IMqy-@Nn~$e{0Ro}`y@W7a>*n_C)853d^ym4qFaIH z77b8={f*qB{wlB^Zv9kX8g6}6U@E@iazAy|OBVa1il_MUX`ntQ+W4kHpuRWp)SV(X zh}o)G$R(ORjZ7I`&@)OSGruFhx5nETJ}~wY?ci%5feyhl4#S6QCnUy^C^IN@G!jlq zVr4awu+)RHUXpuJkP!uC87Y8lk_;@kaw6w%Gp=LwrNFA#&B#Q~-!A=+OyvB1bzhX_ zM9yC&S>47ci$OIIgJ0PVsfnmlel-D;9=97WU^wohc>eysFl&>KfViiay{_8*49adj zv(N3ByO5qcHtc>v*|OJ>p}Xn8slYb_f?PU5U0;ZjFt3cQ2W4+U6E-(TrV>9I7xStl zb=p6q%=KD^ANMeC)iSFnbDPM7EB1n#P2lHje0FNc? zTxbL1bA+=iGjoCKbF+43EeU*cDPb2v`0s6fZq}|YBd*WQ+SN5AN+Vo2VOLl?5E5U) z3l+P^XYDeZCz2CvRJPuuQVI50b|y-OKY2fd_3>G|HpZ0o@maf0@-zp13c^|-Dt^WB zSsCH%M*A>?$w5rJN#ZGoBb?n-DdsyI;q2xJ?Myfv;q2xL67F{cLXpJLP+-}|&xoVQYJ48;df{9@^y+ApYSq9G$o1MJayf}daflgJ9UwvAY!1+<9 zkpCL^8mEehR7;9$oky8SbtMxy+j&QbHWKTd^GWDp+UQ&>gw&SJ&ORjSq#(99ZPZp* z#e&$H!2H3f&$9&Yfg4y~%XsG0vfo3>Wju3=dJVMv5XO4Wn2vUtS+QUV@ZQ8LB+=(3 zoeD|w`C-&tAxZAi;gaI6!3@tb^Dj!~p_!h}9Zloz7R{VdLOaMFbWes3xqB2HlA%BD zX`??X#2xnxWu_~{8~4@=m3VtE&#pm8#=ML9#b0Sd7u%mo@p9(9!>9Wu&Qa1|`j(Z5@~V;>Q( z;p8b$B^!x@7zIgIH4sCR90iM91q);hGBO3RMNNP*zxp#~i|%|XhUd{f>P4vXKK!Pi zhkf7Q0dt4yfA&1=POQA8F!y;i=&yqzMnEP2mYfu^i+E4Pcwi)GGr;jS*qF_*yTQf> zVHI{a*ht`ACHrGa%ci9-DkF24)zcTN;3$oQCqh({;8*5og(LfwzNCE^h%iSnUn)Ze z<~!V~ya;GSwknx56_KqRgyP$6nQwb z;vd(WRjz_t6aH}>6jHej)I3aL%<*CjE5#VTTa4jujCYvEAc=9l7h_NsL^&Ae#T|X)X-$tS{`{ZGCmKw*DuyB_lDaQFfBwOescY zw-^;VMt%g-h)WESj+dn4yGbXsv|0i){AwEJ?Otb6#m;03x}AS_CTN@g?o9q4>`cC7 z6R4KvD4hu>82;*fsW}$i=J*`tbmJQAHOI^duQ_I>bT`L}-fWK9`FN{1#jZ@{_e4AK z$GV$YY`7OMwr_X5crPzrQpa-}+&zg>gF9Io+{6EFaQ_~?|DPSbZ)0QlFEqGADEB{X zaF6^C8yr8P>sQs7^0^~is=yI$5FTLv3(Jq*S?upmrT@djWc;r1ICKx+Ul;QZlj)<^ zm{4;gIUp12fJ~?ZdO{s^C)9U?t@rvvbAdhwaO844XLk$&`(<49(QC}4xfLr%uQ8Jr zz8t;AOqzroy~a#hwl(DFHD=Oe=%d$|Nt2MH*O*BUMfawUUSsfMUi8sx%%mx$k6vRY zO+p{N#!Q;|(MPW_lYY1&&tKyl8VP;=8t2ePfxztDolbv_bZpsxirZj_?^Hsczh;0we~t5M%&VNg z#(A|Pf$Q_vIIl*6=dbx)0e$`&)9FJg?M|nO<74G|I!ywfHMMDlK6;Jm^p7a*PN&Jh z)R@z0K1bu|wRiFlN3Xq;f6?7e{-rpb<|;~>YUJoOPW~}KmCwb6ng8C=Yn=S!i4s`| zgb^c9$GdRieIP1-lyl@n4eN`F>{pG}pwIfvjF^z}CsR~7C*lZ^C$U&%FQZ(I!CJQx zI&u<^uWtgEXf-_qmsmAJh*#oFfxk9SarlDP%TKQHn`z~Cim2>ySkxLhH;x%KJd-zuU^0pHeITBW&Rd7DwY=YTyj~-)Z1{A}lp<5~T({5JYzaXGdb&AK@DN z1{ZOg_ksljN)4RZ^cwhl;H3smf(@K!OG*u#2THsKPQ28>Nw9&_ic$kVk5k;pvD^>DG~uGpp2*5*$#aOWsbTUNNxq6R zgN#f{syH*qNP0Q(Os1b?MI4intW;+iGpCc8-?ucUnBNcI1e4I}FW8&u7Z0jeQd+-i zP<Q{3xemXNC-8+dr^KYwhXima&k z7mp3n&s8o!x1(Eo=?Q{qc-@QQp+~=(icL@V3F1>2(?{`xjQ^X5PXD7#wjM|vYXa+W z`xl#Ro4^j*SJO}~G!jA&@v<15qTVnnZL)1gcxjVuKKR}y8)IQZOK-A~@HW}LgivXd zjf~PJ8wqcdtr^{aX_IX@7^O`%N|iR*NR&3&n61(#+w(|fii*;{puH4CX{U`GZ>Np% zOFL~ON;_>NN;_>NN;_@8foY|kHWHg}}60bbf^Bf*`v?@Wptsw^1zbu9S`R`rMK#{z0|QhUCFp_jIv~4kx4nt54AsMkokce1#dZ^_ zeuU2jht{xARCpv9{=*{FF*CeQh-wmZ!t2;54{Il}SXDHV^&{gUP@|zEi}&CBXIB$N zKABQ(5hac{u0W9NLmj^dh4YfY2`yBUKbImW$j+K5I7t*_7cXC-{Abn?ksjTk@Ff|bMOZ!tjHvyN9Ws}Iu!^@GiOh}X;wVU!~qP#GbdXCvWp`+Y{ zs$XJmCrJ_yFbU|LRNJk0QmbS@GBdeAyi%;5JV?^x>wx~LIuX99>z|s@cHm82|I|Lj z3s*9QXF zcJW+nw(5MGMv?Iv|26Tw1XtDf)1p?f=w%$_&}p~IHcVc0wf2_u(KWB{m+-FWF2}ZMAKB`twS?FuS3h2@^{NrUxHgf z^++kKGY zQZ1@@PkH&0t*B?-tKvPI1*3<0jusDbEEk^?zN3o1T6ZVY)C)zb{t6N`hWNFn!HZR^ zJ-GsvyiOaT-rWL0bx$6x!T1#%7`XwLK584T{CWSFJ_n~O-N&i#KlS;JTZsd5NA$&I z4Qh=a`*&*2L>;+B-;}ZGd|*}qEVxsCffcUIgGfJUOz}BgM$njQK##u<gi$WGx2r2ZV61FR;RC z6eNk;)Sxj9w`oCRKgNOy$06PhSNs*k<`v-v#0UAbgL&+6H0}I+%U{>q!txf$+-~)^i{(1;Rts&bJ^MCb>zg&22DX zhxH0ohmKY1ONe|92$NxzA*6v_5x^>f*aYN40Lt@PR|j)#A${cBJO)?hcz@*BL^{#e zaZxcz5+ZS?5T(*6l_`I3T(`P<7EmjG#->FOwTFRKg@TU&5}hE7sn-6uJq!8~Ky(fW zmGmEn@u^WFs$Kd94MSj}T?W=EXne;5>>3cy0^vX4+C4xtp=Izz9BUwmi@nsyIiB{$H5G%q_my_ijkH<#@k0dKy4a#oPF%2~ZLdML9JrA70;uN!*1;gY1M)2(x)?-yHr6b>1T4k&YfQ-6#~`#3R?#wh z35b1w@QrWx7afHRsN}sU*o_T3th-1XS#XbowE_{AQp2+#9s{zC#2-Lpu`rwh#3>dh zJI-M1U0jwTd@=bf;dZ#hI4f5UmH)Ja$(IuT1!CL>=q_OuQR;693D2PnOSlCg4FDq=esaGlAD$n4nw2Yr#GPASHY&kef-cgr5iUJAjn%hi+uAgy+%iEa5nM%qT#Y z@D6A`fh?Br00j3VOG>!CQTq^0n-$D0;RC@x03aoN5|9%}u!OG%axEZCaVg;^K|KzT z68mmV%Ac_* zz!E(XtR;v#m%7%02*mM^nV>AIkSu(c>=>RnlAhp-i;={)o&?isRwf6^L9|VxRT?*t90De-dx_}s$ z77j;={nJ`SzSOFR5b1tEcde?!Q$7z)g|||MwdxR1vj9@7_nS~b#*?A5A!(0xg*8V3pfH;dbEpeXo@H6A?$g7BiI)M#QVPhaz6=r|4%?(2Z;CI{yXpU{S)zi4d#yg z;gXScLKr`7w^9W z>IHy!->iUQK)3h31S~oEXYztN5Ik5b_sgCZp`wl<%g&h{3VrFvj2r5$BlkuQ3&4tLH2v&UPJV zOaEtBlx@8GqWmk7aHl&8KILY{*z_hk1p9QbPC^#>wH5n35Ovt5r~=rRf>;4$DT!-9 zYzMLp5NDh?L*k4Or=WE!F6}vt5diBR5ElYDm&79=J^}I}z@a7gyO#LX4i1++jh!&0 zTa~2MS&6y;5c{qGauFcA-HpkPioYmRjWV?;Q_1}Xm%o=WhFb9#5dII5tv3*=@=ARJ z)zJ<;~20 z39((xT0;>Hl|N(CMD*|WGhqD+v407$Uj)&=3Nr|R{RW7SfV>KblM`o1oDr-Kak(82 zi#GtQuR$cMVLiYKE=NZKWCFmc1L1Gc>FMd9@0j$t7-Qo5gJXB%vK(?p0_;6O+zsR= z68%8zhqcMQ0AZO%&Or#*vUdWkBS7>o;&}&Ptpc$e$l)YT1F;jx??|i%@g0ya0p-si zw{y_vUd;jb0dV%NMg0Vn?*eB%IQ(vb^#nMp5PCEKU+8p=k0kU2e3=TG>qq)NJ+Kw` z(cw?{kL3CXdW`SW=?ovsJM?aY-W|~EM~1DdpqCGKmovr3!NF>fdY&oX3eK+)`naU{ z_TQzr;(ICjKAq{NFcT?68g>(&h*bED(6xJnQGaLRXjcJDozbl*Fmg9NyJhenVp|{k zJ{`$;h(FeiKNg0lO4hK&t`?(&p^D1Sx76r|EKA*ydgau?xd5qgV}XnYWIY95v?!}t zl+`QBYL#c#<;nO;nC&I9vR0uK29>qY8YiLjk0<~S$m>v0#R1|D64#wRXxfouKa(* zHS4zT`w_sOvFUcqff65pWlXWZ#O)ARwm-nOR$v+jue7g(!uLO5(FCDn5 zq(7I2mfOHuib#t9_I)6B0og&~5fH$3lfz_i83zz_VCWs4woJC?D zh%bSB3b2-f7}f_5RRC)>i0gn{N#axxd=cFuoCl&ekXAtSau8BdUecE8iX*&F=FT$c zXGu+m+*E*+)CE8`0K$}#lDY@fT>vR5PfJj}0=`#Le*pVsfRvQKFBky)ocodbV3^LI zsoE1rcu-_2vK)UG9QzNrv_iBQ5dR%Rw&Su86i&IRFy*b!5ONl%bpXpe98W?(ZX*!| z@d1$cNMu2@_Jb;b)c|545FC)hf6#%bIoma&`a%~0V+%B^7)`u@7BOitB2Kf!z$g=s zGSMg#i!zZYm5Wm4dvhMj^`V8RUi(TG)kb|ox$-&1{w-MN!G?7->JK3P2;?O|;A}TS zY3er9o4W0d+N|7aGP9)aUOZvgGr%hJ$8-W<<0IYbOduzbI2^=ZfV=~+jsej+05u9A zMenII)yNnOPGxSRHWvK>5ZMnPMSl^H3jkqCNzva2>K=d;y{E;m)`0I7{VQPq0U$*m z7zp(M{HphN^Pv1D?BVJse`o6(9K??n+9|O5BSH^=T>x=2kS!#dLA(RxO+d6i2x}NF z&4ciC3y^GiI!(116~$kfIfE*ht$iV~4?wbY4v@0|VM`wrat*Q=8cmViSKkH^h`QJr(et`~}zlr*WZ2c5ABt8Snz`rVdaR}_HLnX1NXo2n# zAe%*KKd{C@@d$uD9K=Q-=abkQ#Ct&A1Xwdb>@gTE2~gh)A;m_NgGA0rD#n=YSYE1b^NOur39$8pu(A=(QlMTXA_6)JtUF3u43`N(}*s z445a{Z z{N6x10r*vKbF&zI6y_-3nFqnOQ{dk&*B|RejDzdE9HP$wYdNAW0a!;mh?u6JXjF0?bc#xm5DP4&Y-3AtBg-`M})!vEQx6t(^Ao?nZG{-_OD(a(+M3WhD z$*?`)Ie@t2I3TM5VUgei^wpq#3=o%i8t}{t4W3Kh0Q)t7xWpL-1i+tv6_W1!2ZQ;g zfy7#{VDJUJO|`GUtuJEr21IWFAqIO<(KFNFoHqC<$SeVf!M6dq1rQbq8vGon-vY#7 zPlI30+0EcA#4-RecsP(f0sQ$gGhy`~X91lm0jj&yvUx=K0IVNEcrL*D8pPc|ehLW4 zhyD@gA4_e_L3&n0g)LeuD#7DWm)I99IAIoVQ|$$~eFR;90Ytk%h!Z#=;?GoTLP*Cg zwZ0?ZEPy!SNFYl9VM<6vz8KW`0C9q+!LRtqGOyHjf&CmnobWdw-vIdY2a)s^H`Q)~ zkFA2i6|{6pqK>zzb}!r-M`Bt4hzU>Pk?$1 zAO?FH{IY%F85|jf<_!>o`vGYO@aKDcKUjVK3_LWurFNlaz|Bv?YWr%i4ubG>fORW~ z8-V--5V+Zm@Q&5e=#V-efa{xg6;z{`NS*`AZJPGU*0OFVHfLsIM&;Ms+ zHTw^Fm{E;9d;=Ep5Y%}{;`S6`Z3jpmyjW%_zGqc%q|Spg1}PG_2GEP@KkUV%2DBIoga2(jH0g{KSfLsZXJlqFEzi=yKQHP;edEzCCK=R;8U`R&&_3Gy_V6Oy7 z9I;iDq*aG%b@qdE`I;MRdy z{Q;5(FP2$~?^zYh={&52=yHJM;c_6C0N;f@w4VArC*RMIP4bJY1mja0PDt5vvbC^5DfXOYuFcf<>K&qab=DK=N=2 zkc$9WFP>tfm_m%nZ3RaZ#+d|;dBL7eSIu@x;b(06t{yhL09GH^&PrkoXEj$3Acizz$&AwhqXtBvK$=0>VvQG!W@QDZ$##|VfZsPJ<$^m=nqzG60!=ghlAJzz8-Q9P}gt}cO(3#6ZrE$dO4ON7))UsT4BhpJEJvNQg0d@eyEkM`^@TVTo@J1=pdPZ6qwQok~PVj#R2s1Er z4?@fhoz^3`e}m930M7O_TFY4GL4HUowTE>nthE0E&H&V&egOMb5C;M|fW%G^CjvPh z5av0j(3c1?H_WU*2ZM&EEg*+!k`+E{GSyuJ)-{N56*XK6Vmpw>0O@CTi)70hD{7(r zCPM!L_Is3n2}BA7ngFEB(WiKcIM_^-`e}C{v;*vc0K0W}q87x#2%QDMuYs>&d+~iG zOnA5?Gd}B78oUW&CnL&9j238ceRS55tmxC&Qy}yU*X^w3tgdI`I@Rb;UfpqUGgo+b z0IcIdY=NR{sjTizTt6(LwzPow1jI=6?0K5iGVEmJHj68< zQue=r$TI*b`_F)ULV{(Vhmss1%qU*ji(5Ty*s&<-)yC1SFCsJI){%%Te`+8V#uE*w zk;pMC%vrR76=op>=L4j|{0Ip99H}r~BwO*&u~%Vk1N#=rv%)+Jiw~40l+V?%FWmJ>%mMn^q+67^SoAS6xMv_qh1CJ&@(gz&Q#cO91vAAZ`b81BvTF z6lZdR0ODK_=K(nr5N3Sq7YO+p)JFhoJBVcm;-Da)b|;8!5V4O++iwDY0D(UTgc)dk zh>-U{y$P_s0XQ z`$Ir}0Vr;BV@!n@+vr-1@vpdHE{(srMUUzQnlhfJ4z9k0ihl^sx6s2!a{FKqd_pY( zRMGEhxyjXh8p77QVZZDSi|#@pM5mzjDE~tAW(gECe~a}ELmBrKtd(F*hTcwqwFbl$ zKrR6|H=eFr#iL*y+0h6`6_C|JxHmfngJ-LU=Luu~K4q1sho zh0Aa*72%L?+p(@a%6|@0U*+<*m8^Wf7gD?wtcrtCjDWhWAlAd2pVI!Hfw&H#R{>Pr zL!gR%F>@p9VGyq%_+_%JYeCh_Mr{Q+7nNat;wFU((~i7t4&A|&ZUtuvL=FeoSA)0^ z$a+Bi*aFm*;(UlW$u~`FAtOxz>uJb51^6BjrkFJg?2p0v2w*J&kv#cNJVG#TO0097;K>;G# zTuvgS|L1xAdVtOTe{Ue20Q`zxdRHPpZY?S7a&@}2Djw_xJmLzm^iOlcc6Em}m7$B~ z4-reHPw(MyJ2qv2#OW~=;|wpyFiz^CoX15uiBmDo-a5$OupH+kEzW6Ml=Cs=y90BU z7^jq+^T#=9jB^^PVw~SDU>Ikyan5U1j6L8ghOv)}v)5BG&Mr1Ej1!6|=MYg&AXJPa z$-QK7M2K_rh;yKbbLfb2Oo(zUQ2rHA(+)ZQP_5)=Yxh7QKi0)}-d7`qVlS(b}+4yf{Zs5AhFPporXWv1#%BC(%^4nU;%W8hRX z>iMq0-ciq-y^bKJWtx{4^eJ991XBWfVcw4CW|*D@7`B-~P*F!66_w3> z-y+Da2qTN4q7p$xB?>MPbyQ4D^zRZeY6K-p+!IYg+?T{);zHCIqA@Y9@Ap@?ZcjIu z{C)B~@3Xw`b3b!#pHt`5sZ&*_PA#|l&dng#ibzB3HW7;)j% z))SpqCto2U(F*6rY0N@ELR;_l>4Z$6SW;#uQtqGOdA9=nM?>7=wDcdJOB@W*6>*M& zSdlHPxx%4s7!xmX7F{1rNfS?xtV+p938iI5T81T6{2=KYq!I?H%t5lki=9CA)-dtt ziiWq}bt2i5b72i$?|47CB^<=v-yVB~{A&k?IjNPs{H`a-nRo}*`7_z|0Exds6r4y8 zKs2Q2$Bo6b1!5)*aT1)#08ee9eg*bZQNbe}7+-o$rH{v;jSYy#xcg{F-Edqi7)Yr2xeYMrxVe%-x-P( z1_!#SA2kKUs`#=TAqprA><=Wc)d_epov3Dpgw|)WmG~J7OV5MFw{TYQu`?F$0F-t? z6s+j*Vu@X-yo-7?zPSax#akfM*VZx)SU{z#IorJDaHi@M5c>K4#IY z>!t96o|(M^_S_C@96}vH;y#EcKpqmIhik2K2vtDhmk?KhTq@#Kh%Z6@1~mK`V#D^H zcRbMW8H9)0cV(WQrcLdH19;{GsC&SE0Q5PugE-B~I=mt*;pl=_3lBqEdSZvWRc|d} zPK5O(nmz~2sSr)4P&_~!?2Htfw<&WhiTeUYOOR@FEZ5uHOm)E@5)#E1&IWJbyPFEdnHFzVlfwy%h3aEy)4&`^Mv_^>S=MhnXfyd`$ z3bPX1DY9@141WrZ&gaJM_#Om_=2VF5$aXd0H7tShMo{Nb5SKwrgy^v&a+gEAh|IH+ zGs~dL=M%&L+x~xXRu*_0$x*N_xt>h6{U;)FEMVLJJ0RBph+;`u-`(|8*0q53-4j420{HHhNMXZ`w8wni$C! zWOJ6NOs>epeGnZDSQAeI(a-;^i7P=a1-N26(_S5}&t};qZScx4FR>4-wTRsV44juE z7rDT8yHJybFg`@$&w$r(9+Z|o`-ycCM9m_c9PkES1*LCP=U($AwhG3Hh)k21ISA_e zU^fBgIEZIJo)$43V#rx&0_=N!Vvg4?+DH zu+Nqv4S}~<8r)B$-h};oz&=|lKAT_)=!$)RSDf|8kXRgk&{~bVA^SsEJ0Uk582Dp| zElw_SozL50Je|XE`R%t;%+FzTk#!Z|nTMfX274Z`q2Xhvj2X*e+0f8g_#v8YAgefs zXaeLB)m!JVp`snJodFvvCV?Ce5GrCvIkN`7iVYb@MRoWIX#?NNVK`xLSJKSe+?Jtc zsZ^O?Lp=ue6TsG?Ia2LKShfxe3hzVOn(ZxS*G!f?qI&BbwhqmR4ghQ&_5&FYP=}FG zL3UB`Mz-lPJJQFqlYdZAmv;~v5bp%S#YbtB%bO^NBy+Xw zxE-md5q});hA7W0mnYkZCzuD2OiMDHrdK-&-&>&?O*O~wjwUUWs?KHK3fO6SH;|nH zJ55J<0&fd>qG|dx*b5||LizO|*GOK|bR=)Qj#0?FWzvhVpO^eDh#ELrbtWCW7GV4C?*Hr~PQ8%P}uB)$vrZICMf8!Mwcd>Kw<^5{_E+{VZUkXa`= z*%rz5@Je?=j&l};ZfnyfWL^WTO=c+*9Ke;C;_T^xq?T=ojMu!-r74a#FU}#n*iu@2 zqf1%uTNQM_1QRP@?SR&1AaO0kt02D;aWlkG=dm#W68fsu>mbjIcnIRm^O?7S#8VLd z1x&~yUWB*+;w&KXdx+#Rj0O^ag18FgLJ^-r>~$fF7a-AtR=Ex2yCTXV$}b`k0*N|^ zGePEw7y|KokXM0*10W9EiG9Ex`01e#V=qP{V84cV)6uSq-eP15hE|@Bn2owuAaWUC zqwf76Yk^`(*{J(lsNVoK>PA`uZ-cbBsB4x}A;3o6As~YQuI4GOP_=6O3P)&Jto}Kl zyWKo`4f1YpXXZKN%oK=2QLsN?O-~$SwRuby$Q0~UxraJQUl6$gk?R0!`ePuE0L7BB zroRKV8L*~DS^}?ATAb;n-{Ncvu%_<-G7{iwe(vb7P;2^Uj`#}G^>w!mDEz)m*H-yB z6dVOK>pN(=q+#%KM>q{(2r@e&{{XU=17Y=qbgVs{|%D#Q|ybAb3~PL&jNZ4@x9%9ccI1>ZX;-r<*SJ~TL_HHaPvh-cwidj`xl5-_Mg>EC) zkuKLu*+O63n{pn2^&C>a01}Tw^uLlVGSKjAh%I>Qc8HnRA-+ZGg@8BkeW+DiRre@~ zeF)`k^gAO4U@4^f$mJjhh$?u3|p4px)z_)1%ps0g6XoFK1co}k(zMlN4tUD0S z6huw{630MX2yy{XEGaXUlpjFd4xnqH)1keH7pvTXRrYaWFj5P`Prqx;7&Pgd?wiQ- z43KDpSbi0&c3|L%5VKsSs8#h1E;9$lj;q*61Kz+zP|KWH)Za%-?3*x7L1d1^8ZLoa zgQ2r2wBcqE?KIrJ5NjbayR!2Vu@RyZqDvZ{hge1KE3Ag!DHE*w#CjXz1(G*fmcB*5 z3D(|H;nNbOM7iHet^i`d)uaNR`3SiwU=x87`)}?^RWtMI~o z2tFD&gx|p)kEoOWr;?soM=4#Da1CG{gLo8V1K^q4p}qk71c+}r&T6y`8S#8gKu`4H?qxd%enO zo;K9zo7WZOG{YetM&EkCE4&n&3s#IV*Ya6?Eo}>w%TL!k`}w{geOY>A()#F9*b4#c zqg7puR-jlC)<;i=ng?*1b~HW-{xD$1K-64^1%NpiVll`<5#NA#A7m5I9C>8u*r#B| zkvm&$JS7f4{jSr;Q~X)5F1wzSWFWB&qW%V!fk5Iih^s*^7jZqrpFsWqG#osNR;b}v zYaGO-5G!hNn6cQf0%G6QL~)>R=OC)PYgk%0mT?KC(<&3+MB)iV9|M}3oai}6Nx~e0 zs*g#32QbG&+>@Bh$YGc@&QnE3Ci!;MY?o#_QQl()<5x6dSj|3bk02;vElM?^dfVZP7oD&iLq$3Ywgm{%a~1-VkhTM*~m0v9kJ zKpb!@6ER@EfcP88n<9#6*`MAUr-uf8@LKxKe3z=?vN_@c^7ZuHhsa@M;yGbcK~?Eu}tv2)VTS zCavB|tN+sK(VD+=`yR}y9)rn~RP!d)6G?TO?XIM{%S*{Ie<3aMKQAR~ej`$ad#SlY z=#mMLOF+_>>h?9U>CSGbqb5|)nY#Us9Le`}`$V_6(t7IFPq)Fk?V#J9y6vyq(Yoy|;e&KLPPdu5Ezs?ox_wKx zt9ARHZg=VSW8HqL+wG(4UqJoxK;HPw??;5A(K6Xl}R|3?9U$ccrdOf z{qWQ8dX_a;Lf;asxr?3!5`!VufZPOB9RQIQJFR51Be(V+a-0h!_k+G(r~725Al znnU57hR8f1evgy*#gTH3aGl>MWAr6~@LGfKq~0m;zb9i<&|PG_1F)983-UHlEHP`s zz`KckK%q?FXQNH~4ewSLWECfz`qWOpy!1ut{v8G$lMHg z#a;(luOjPTA>RjzJCyQWQjY%-zXSoe8lQmfm}qg2Z{>BMFBK%m9Y7a62g}|Po4~Fn z!<9g>WXvB)c^2xIfcZN_@;=%JF!2E#<$>%46mO7h1t||htrxo{AUv_PESQx zNK=dIpy<*A$tN$EN1juZFCM-Vl}8P8G#U=pZ=UHZc~nxqk(4_m<&a4^Vp0y6)No2_ z=-DCXrQ{+-2jL5H1M3h;b!k#vnN$}h)pbd^MAEu~T)>Ns<8I$Z2{8lE<#)Y|qQnuf zuE)M_1BuBH<^d)K5uFg75Ho;*%OECB3UgM6AKp{sHy6Tq9*JjxwgZMD?xc9fg~Ljn zeCnx!!o&hZK0)?lATa}?Zaq^7kT@1%G{~Mn^Fo(5Hc^?)S(I`z>C*u(b`{jJ6UAV_ z*t@E8?7=9}OAj7KXf2Qy(JJ9CCrlm2(m(5X6|;ElKW5zt^t;LN``zx4=6f8{G#CGU z)DcW@;ilb--9`2-F8PYA2`z_U!o#p`MC-Lc;ujDfg8Wg$s}Q3fL>mVQF6~+D$&7ZyADzJYtg;SuX)m%uD8UT7>s=UkUpkIY zacp-~P_)!bWSSD00VA5CBZGp0>`z>)FV5EJb=9aG){YO+mO!Eo;s%hbfzrVcJY(Nc zABU8V*2kd(Pvj%g6b0fN&|~Jn*h02<0G+u0=wb0S3f}ag~Cm}x*ut9GH$Rz+*{77e1^krqcyNs<|WM9Tv((bsL z>Mz1r`7N72CjG)MJzGuNp8N=$$}V%lO@3&B-*xrjl=vyEhbZlC72l(ob?~FiUqHh! zh%MCaO*EVBApSz?8-O?PI;cY@hk9b+hgX6&b3Ke7J;r-z0Ixys?`hkU!vI(fr$gu) zw+Be>42Uhrya$-`Acj6p`~i|HAo|_nbbEz+L-LKggZVfS_7uPz5AguV-6Cc|)IUKq z1DI-|jsrUaF!c~?L2eZ*b_diNr+1dK+3z}vrb|2s>yRg@Hjwxk#P>jM5b+|!-$4Eh zq$QRXJFR5%2Dh<4Wuga?e}-sM5x&KsEYZYNxKj!g;{P;aY-%(yo;^j}#NI*D=gG>Op zYBxJQHo}e~rQ|u6A|Ku#5Qozf=fkS9ZCfw)1!!i9Rg?4mL}g2)2eJO8gi};xUx=TA zJOY?zh`vwr;07q^aJiLd-PT3Lk9FMG#K;JoW(V>w+$}7WbbI+-+J`3gg*6|wQ-H)F z5QBe?mjeSQLOkj+Rk%z$lEqAdu^fqufaa&2gx%A(YG<{|rTE^)e)MEhK}kYeth29I1m~9s3Km_Q1gHAx7>L^5;7n z^#gRX1B~Az@jB4I#M5rn*jUIfpZp6 zSPH>v%+&IE6A9k|n$!wWws;nc+Awv!pT7ENiczcl6!|9r+bSP`ybr|3xGK3;>5hhB zj9=#1zSr587QWdxyHRJm_#L{DJ^^g3pAIq=u(3YM6nLx2q^~V2)?WhqBEZJ{pMpFA zlxx8o$s2Ezhir!QgfG|epl_F zc5Qrycna8d-5+EE5btssy4w}+*ctJPokLBrEY=hzc&U5+(!>#nEI`32(l{RC4v^b` z>L_C*UN{9V4pE|qNV-14XOE|H(WGYA?(tDkc@ra!6>i;|D(dS#x_EhOA8Pd;q~r&mMW4F9`;Z7Baa zPLm+wp6kHehVq6kQpsdCOHe)-*(RX!JW|_mk;7%fN;nHhod?u@?6fEhE~Q4b6I`{m zvOLdLGNl@?CTCi8tkMr_YR=_$F-cV`K)j?>CRJim6-=sPUP@lHPTAx$Nx4Z zo6m@$Zc3};lIjvKr68crNNaSbHQtjN$w`giq=v5-TgQFbc3@nk+4Y4YY2tBMtEtl} zAn^=DkLPJB5x<3)1u+FM??L<$M|GmU1n~Gy`^+p9OLzV262>i7)7pDH`VAhrL?z z+Sh&r@}cB4%p>`jmnrWa=KWs6w*foMPX;+jg!ZzRfvfgup}Z4vgJ zh~gEn)}wSSV7egw4)PH&Tx)P$?@Z(tdka?Q6w&;iBm6*xc!>{T?fD9aVnA9%tAv+1 zVc*N_MRN}FeJi*gp?iRSD;&RMl|%HKh;`@-7aY9U-leOI7hQUGF+JcO$3;4tYW1e6 z#VFCWDEz?0FD7AP5?14@^Z}6Q4RJBZdBDH{5M3_QXqQR9jc6DFV^bOHPzW;;;x~xD z2zX{7)X-nkvp|zQ6>-*XiQz}nu<=bm*3TL0%74GSbW#~I6emd zhKc}Q>?EkoPQD~7KTYxrt$gWHeH>J}QXdDGUayZsyqI2k_p!?tHKX5USW70>!@30J z%K)Pn!MzIdGEk&b%ZjOCDI9&tO+GV^P?kNYEO?Dc60uOODJ!Qh$EQ9w??!UFBDV|R z#UowWZvw2+fS{1nxqbN&5XPi00ZCrX&5QM-$vT|Y)qZG&-}UfxiXRB;L{v@$5+fkq z0{NYY4u~PYWo7~r<00+`SpziaHRNsk@EaCdq2c=wrTY?JDAU{qvEwF&1>g-_2X*YU zusBxG_WG5??uT*RCXN(<_$()(gA5Ib@Nvr07;@Jj_X;vE0QTp6L!B%Gl=92&3<^hL zgZ%|x_3PLHHM`Gj@GnM;aQTaYlI2VHTMBzF1bD~+!=knii*bFr4cjdFPUA&PlF1so) zzf?WCV110tJAgOhGxgnQ*sB7gSLmfHYPco16)V|fz^?s04^M&OHl++9=?|2Dkduej7>yd@d;+s3z#a!AzCh#@kU4<; zjeS%`j3?O06We!0{@bvx0PN4?9spS?Nv8FJ=E4wZ*H`7rGJr3Q247&q~(Gb%>rT~5BVM(Nb z?d#MqXUr)mI=X10@-IQ^V#F^5yy~Z&RJD^b$DnZytRDboI>hrJ&x)7_@d?PsBF=%R zdyAzM;41mX)KEu(H*s$&d3|6usysQsXr%U(WTPtiURH301aAn;d<|PwY$ig}0b8+4 zK$ZhVs#ugM=4~Jol^Lcys?6Pp+y!{me{qT{LPI=TnU`R_0NBcW4)Uo8Ri@!>w!na` z%)TId1K6nIN~eW7c#Vo|yeUXtH{F%jiPVXb%tTFm7c32)CA3GB(a~OPGXrIl)3!EL z%Di^o477a&>mf9)0}?*Vq_WMpJ&;I2Oa?g)DC`Ttw||b!R8Wqt`We~sN}61nLe0Km zda!aM=4h$Q`Zg$H8q5rJQpa@XtX=HVWT`y}OPucxRLNEtY(66_j97aZ2CQ<@N4iwM zt7s;Mo&f8<&FrXw#B7NAKM<>d#F-G6fSfO48N}Z~J``~!#JG3x3Lx{O)BBOLY$+4- zmTt@9dJq1Z3`TsHToI!qYs8G1C|m>UI+R@rB-TUpc$XENv{$25*CB|x9vRT)(xAJw z|BPG_qr+xl5OzH-?JvUWMBxk|@q36@K%N0IM>c_T>22sq?+n$dnBalDnOV zhAUy+kIY)Y>-U@!ia(8ox{9v0?NAu#pY4R#z}->(o)e4`FG82;fbkZ3UX!l=RZy#( z8lyG({(oXE2{dWEMCQb^SQK~4+JcgoWtzrn7xLEt;ncS!Tk1yDp*=9ICn0zsf!hY(l7hqjSrfY%3&mevVvH>WTn0Z|}|4g$0MS3Glq$cJa zC^e^;$+O6)-*sPz$a#SMUH79P4+Hjh-BF&nH<3KrIq8Kk@4|jt^7>u(fDfoEV1L(r zq%)N--Z(5;`sq+y6PKN^#v?x#uoG4%$ZUYC;ub14#pR4T?IO%H?^Bzr5xQK0_P50g zv#qj1)mdQfMlSqqv3?tBufC%xu`{BwSi-T(<{R6m@1XQ8Adjey@fN~B^oT|m4&4ib^bEyBZu;x>t z*+60j#N!|vM9hb%{tLgS021GXmnr&6U>JN$Xt*^?G@dSbAKf5t7!(sMi~BY^wA9wBBix)*_87-r)=kpI=8`FVynf zJPP8HlBSBe(#Gp%BA9 zW~~G?91r2uu|-3@nF8?)sZRo4!(6B~SV1SO(;&wDoh1|CnVq1n23rZ3eIVkW&^aOw zhIkxe17KGzGdjq?#iW3)GA}4R1bsI0R(y&h0pU7xVTZ&d7-3Cef>%~RkDNj#Eys2t z!%l!*j!gvl24L5jQMMqfAPOBU&7O=3JrD6EfLFb=Bh+8*im^+xTVdS-*rnMoL4Gbm zOS8X#d>}&W%-)|dzyNI5R1@1H)Zu3_r&ARkG+MT6s@aVk?aF1}uu<(YF$~o*eo&~N z<%VxsLTD0Ty~;-5NVtFy(;b1ogUt1klb_jbLL|p)HznuZru186UIlE_?ejU62ORQn@u!7;de?X|t2# zKMly-#|umia%t@;@&(v1N#L;pvo`{E)6t5OVSrcrlGCC#&ZXZ%=3*d^D3+L=Oz(m9L%>d^FN3@Y&(n5=A7zC5_GX3IF(jA4%QIg z_v!&N6XGV2)j;FTxKWqO#AZkie|>@3L7DD`^%^p-0ABO$k!FHKX00O*M@}bdZQkI> z_p{r9P0={zDIS`>iD+6Xz1V3Ou*Fqsd4aVPLw~x6GMB-sEAYKaAaNzcH6T}r_zuK- zAa4QYPKezC-x~#(2OzElxd7<@B*ZA@LS2m$X_t|#m~`<#aXghfp&)hXX%sXI*3g*m z4F(bmbBU!82a|drP^>&=1u3UPEdY{wS#YMqDLn#JaweYVX0-g%bz+$2cX*jaF6pdn zQtfh=WOHQ@Z}d^P#ibT{8)W3v0`rE9+y&NM6nZC+ZiPrRaeEQ!c_2{@@j1w+B9ah| zhAsy3mGX+52`HUhV0K#Ql#W4YAD~<5La0*#tModMYeh)uBOpHkyvASc)op31w?ay% z6`1)bP5%W}Vl%hRNWP`4zkx`_eXj(_&syniQr77O=FYsVBaj>p*sMo^9AUHSAaE4R zNnO5|*^jKJ7nqk+6~*ku2rbGAE^>mrsYrrn6d3<>C-?wD>$VY$dmAKpW`P+T32s8@ zwXERMtj5y)5nNPY4v7R!58n%baN1aw6`Ux+#RX;=wVQY0QO+C%PD4wBgHcdpORi3jGlqWLcku3-T-nPU=K#4 zJOy6nK&D=IF#0I$hb6Cr(LaE^EqSf1BY9r^FL`$`nkvL~0K4KD0Ww^K*4#&e91d_b zU*YU?2cz~Zcm-O@me5wjpPaK`CEF^WL*6ri;tfhsm45>D5MZmkAzNkrYXPeKAbM<- z-$LXKz*f1K{|H?O*eXYP*x8dOs&X6b7Qj~dFpxteuPQ&9Eu%y7uF7Y?UMP8OFKz(2 zPK2ubD9FQrs=PkG$|W@}bm$SsdzeaK(fM5XoFmibxO)7hkh8SHEBV-^{d_ytkuIId zr`dCwmEN4lAu^jCF(H%=mafT!Q9tvU<4lV9GT1bj5u2wT%I<^xg+A-66Ohy z2pv=Zr+O*-k_nE^PAgleV|c|L=uJFgeXA?cBmDHcKA|p&Ct-a^i@mKTd=BE`VtO5D zcpYNJaeT$$EVhJiLFg+kAMiPrRoh-blV+>Ugcn_Y7Ap-Cys`#Ac^G-^^mqmGmua<^ zd5?IlYc?$E86K4S9V{iBChcD@jhG4QYB(DGvX2*!iptioly(WP2ColWxI=k*ayG7N zAU06gTENcRdQFTjz7L5^*>FGkeq>lC>3cPR*RPFrv#ydzT8rsk=))ZfgXXBL_;b$A ztQnbzT$!jRWRDeuJ?GZp@BgAJ;J70)83=?+slV_h#+w23YCgpoQfyB-bSAtwD zq7|Y%&Da5omB$=R%0*D;0_GbKe*t+*#EB4B^JRrgfu65JlpaADuNHpsO-6RCFSn0L zO#hKvu~?>*w9+z40V)@+VnI%7`W!fWz*$IYCt&u2cpu~)z^j~zT*r~@Y0zrwVU6tR zdjo(XojT2D39XCe5;A4i7M_hdyAFN^k*9$?qF7RPQQTP0TnyMn@feVO00z4bdKNpS ze33y)y9!$=+a3g-jL=DdJqWxEWCc(xDSHsO9%?OM4+0}CF|YI}w47q*FGhTKgIR<#zGN0AE;1aERI z&mIV_iYPC_5@^*G9S9zU(!&7TMG;ZGwY2T7ZzFaEV7u!9kad8rp>tQ^{8(aI~M7H z^>vEY{6|hLuESr<>3udOzjg&m;&qgCOAXIT#S<z=e1^YzF>lEe+kjnt;{*k=NmbA6|uS4`c<(2!t4)R+Oa{qWA zPLlv#l@+vR2Sr}0)_jCE8wO{PxQ*YZ=k-4rs*)28whpS;M|e7f&Ts z^e0W{G40x;+dm-kHeio#Q+?@hpjcA&xOPXV5kPasX|Tt&BOMVP*IuOKT27>NS{pqJ zq%<4AmN{8g^~X~5mxY6{(DvXQ^qvgZ9=rnNGQjp=l!sSUkSFTFb+GS~yn668kY7t) zORY%Wcxxo@&eMV#A`W1Ctr=v12=&^2Amah9=J54se0As=s3!H(s;tEkMtSxstMm)c zlKJYhxhUuaYS%dVY@gZZ&d<42VgWXlebn|nWmKfNicD9k^i0eR^mVW_$XV2s#9Uwh z?iMzIEe9aK){@cxK-E>pL@mwXSGjEu@udESJ7@z^WbH?X>nm7_R~5h+&aiH4uM}qXBmG%kR{p?Lt^Tq4qxp z5@$j9wQO!hoC0w;#DPGu@(j9?l;m}~{U6=#)lL7fB>8i0K}za2;m zklExktfYEsYqj!01&OosMnn9_g<+5Am8#uRuH`bDUE4pGt0NhWr6pcNBb^^}ow3;o z@ljjd?R;U|$7c3sIXOBkY)bgS!OM-yXr5DHbz<@iAaO3lvmn0&3NM8SRxX}sx=%K|kxtD-GOJGC%221E$Sd_qbhM&Nj&Yu4M>AQ@9HlcAUD@U4vNOU2&WFZUGj8_| z$y@AD#1*>QFT%{DVVy|%-vAQRApClkIuHZzhWL1&FjJFLHRM8K)mj)Uk@^;piR~M* z(r`4l4)@~KE-7otnye)akCS)B0MFY;ik^aa3MEefUc<{!8(>Wm>lFyoKuiI=!g)}^ z%8ySsi$V4wX*a-p3*rut?}@kuqOuWZ1I+g!E&;g+X#78W@xvWg50njLd|d1oK20g< zM`0z_aeETM#{n<%oNJ~{wmt_I@KKU*xorrh(Qv8a^W4`kmhoyrdTU9{D`|IPPko!S z!BEV7sVs~IjQiS~oQ%8@)n4rLN<7FlScwVS((n4=Wf+#~#Umt)dJjnSfjFy)BQv0I zAOs$Ch8YR+M^at~%pMR6`upA~K;uM+g-);WI#lbC1r;m5h2FDZ-G|H_K;jgL?FabY z5TICM<|0yVhq?(cS3y(^WTpblO%Mw~Iz`+C@g~S`L_7#_WV7#$1I*7LJ_Px*h!-LH z4B~wmK;^ODrn1d=z{Ql)Rz)6C4+cy-#9ELwBE~}04EFgCY`)j37lg0k3{O|gTTSk= zo&~k`AI?mJKLxP=aON72RRC_VAH{4!@HQ3m2MlZ?UxYC`j7Hz~@MO3fRR!(=hh%fL#nk8TbMh8KT9&SlIgl zb}`TiG8?eVxkx^qEo$rK+?9x4uDn{#tp~YZgcb&`gZviIWuF<|lkJxXi&-X?mlUKH z%5~MG@fMbWfH!m!O}a(xFrDUXC25F~>6BBUM~w|L6QhQpVfTXasTx$PVa-Bp8j!dg z;z5wLA})Z~xz+bZ0>#Q>?jU6))Dpnl4>72XxCodhAPxqZ095|=O7=6z_g+b!=i%H) z>a`O49YlOM&sIeI5n>s{*?{>wM6jLj{T;$S`z#q3nOiy(b07ATZ(f4A+I%iVZa!eU z>u!*{0NY(rCSJQrrl`AKf&GHywRWo{Wh7y8a#bCCafAyn9K%OFTQA);q-% zfl%2xzwixNpyBi(LVpDEh+>J^;k3{8zBd}M!|5cDnSdMTPiE`5Mq2OplgSmXUMrBg zM3VN~O|!;_^$ENP%N}+;>L(9YCVji;Y%`n4&)KlQRXO%ZIA&waDoTe1{n`B7Qn6F zaE;;iCB@6#gm_^%A?kb7HaI?-b?i-Qv{(GXJsBs~89LE4TiWah@SN#9^=?7%b>Dm_ zL5+Yb5xN|(BjCp%4*+%qM48yVkSQ7gzk|I=@)`j>cEotV2CPV)nbs8-RW=$8LlGSe z*wJth$N?fW8cqe74{()CbhXk7vy8YB&gWVQoOhPjyxMWKfh)Pk5o)MCo#;}#iMx<& z2kXlP@u3sKUJ4HwqSal_Ifa*rCi62x6)~1WaZU_eFKEqigHs;WiR=TzkFJ3FJ**q4<<)@M0+AR+m4U{GIL3{2hK4d99z@N@6_|6C z=_yzzBQqT+7RS6m%F|Fk0?h9q9^HvJ3sj!K&}}=IUwx6${0Yv1JF{>Aj9xf+BgoZ2 zQ6jsfUsJJ}K`g^>$MAKmE)^QU|s3$P+NLAWj6C0@SW>c7!KFV}{r^s5ps?U8jWY z;ifLHO_fTJcRl%jq`c2LiSE3azc_WH5mqNLeID$k|0LyWN%@$UlGo_{ zfoZuyTF#M{yVM-Y?T1ouJcyT6?kF%&Xqe?QgmjAyPF&w`t08gl;vuP1jA!=cJa+NiCO?T2UsoG)-#3o75sc zsl|Izi}s`z>q#xrlUkf7wJ7&e+88Nrq_qRGdm%6O36`&-7j$h2KiDaLa21Z!gWc-> zIMJSRrgDhifxI9h12JzmMn5ocCx|I-6V>E2%p||r4MwoL?|q3>rqfC62Zte$SmI_6 zFTT`qvcA8nd-pg26%z;WxKsM}gV+^)I|1fsh|@vl0VO3)g(B`fwg7Fm!m;CmVkYBc zes1~hK+W&);v=^%e|5I}!eNxc(=9KhCp8DHqSf^DC9UT%X+5E-I#stjbbC;@UvW#` zpqma5lRBnM>bx+iPF?^qIQq{tQb}rI&~`>x480q>bp930s|N>{>UA`S#4c41FLnpF=!cf~ zWNqqs4K}TV^#G;b3lu&M5v<&BM&UCSS$#%kV_PWhBdZDCPOKcs6sQosNkk#qg?qJn z|AVejh%&dJV)2|XF3klKs-u9+O-}YPBrwyR!)^tHV7w{*K&x9{n87q{e(b^EDq&+GQOZtrpPQXg|aRe56zxRvUr#~0~l z-9~at>V!EtLAN7yo6OBim9l2JNZD#Y?EgykQagfPue80CwjVbyrT>zApVIV?k;8wH zyvQ^tX}bLfV_r)C+;5r;y4u>O1C1Y95~TYp z=Kmt*rS#SG`1PpLCZYSw>Hi|e(t}30O8T@{2*1&;-*x;~kzPvQ^SW0C>04b}-Mp0k z0qV2j>c5{Rx9IkXZZW0qxx*JRCCDiuDe?x5L>-&<6Goz$SHLawsC+#Ms{QxAbZ@qS7 z$=^UGAJgquy8R)av|OcmslMo1D=kB$d3&o_zpLM*H2rek-jd~DNxeR?8}m~79sFM; zr}qrn8~@ZCG;t%OUU+G5)DnF=D@`v`v~Lmn=a`q$d&Oochh8;d-zWCZF)yXpQ2azW z^ty($CSLnWv40QATsD*+3`(h94Vc!;0@HeZAg|Ft|Hop?Q$c!9MK|W9^j4`}-yu!! zph)X&Qr(!B(ywTb6<5FiP3xB$-B|J%$mDe0^h=7QenIh7Y5ZEhFNa*xqOTivfBVj2 zN&ON#sW04hV_r(XzrI~L^b6~>zFOFgd8rSeePa-RixLWEwGd*Z&n zcO+o+%G@2sus{QhUY+|Vkl%{XD|Bxi%hL$J=vBH4#&L`Y7`;+AKAtaJKon_Qdn0YT zc$}J6Qkzrye(xqKqcMIxVqHK&qyABlhk;^A84dS8K)nqZ4g1stHa&pRc;6mmxCo8= zc_1eP9F`BCz>bdW_Eo}0uM++O#uiEHmBQcMk0Um~=+(kU?awoNz~~jj-T}V%z6iZ) z_+g0kfYB?5%MZjP!06S(i$G2lp;r*U0J2fU{tyEX^1V9191U>^$TFaEEcPsBA9~>T zsFL1xyqVOu0IzaqSQ}u?qG!!aSd|A;5McB|wgLMc z!WZ@c+kkt4>;V)@$~NE(sA+(0z;A(E4A^jL8}1&cH2}LMMNa(-H(fk1S1}hfmdoiB zMSC2|SC)Z<;_4nCy8>R30{L^j{b z&@*}gN&R88AmFT7y+g>vL@8d^>&D2MF$j$YtTpF?oUL5tvSvdz(Gn}UrJM_-&i2dG8ozoA^x22gen3L+h2DGwU*ZCaC1&(i=;M#% zJB@(R+o2x;c|e5T65VtZyAYuAPt($lui62itb&@nkv% zupN30$hU!FN!bp44r(J1j)fM4klFmLcDZKkXDM z-KBZ4bBU%aw4C4?6@Cyx^}S^Kk`<$utZbkz>w(NIPVjqHD|^Mx?!6*USAPsUfi$A+_B}OibwXQo6=r!F#)iNkKKxc1T}SNiY^vY8VUz^`Y7sF zw3Ag;ELBlKqtH{*T`~?-4!4~`QocX7Tt%nr(bI}t>ByXnyZ4q*Sv{@Uv(g{fTax9* zmRON1N6cyQckdmQIIwr9w3o@zMaUsbBC?6^ei!3cz4P;_fIj5P5$lW7do|WP!&d@Y zXt7X7XimR;1!|0K8oj&Sg6>w3WURY!P1F+cs3m$tZJY?(xG?OHqAEY^vF?V>v9=_) z-PO>xgO~ZXkHZ|PToH9mI!TKPDb3}OM`>lQosB#u?2n$gO&=zeZ{7bD<#|?CcGsIl zSk(Jf>eypMVPSd)lap#){dfY`sJx0p)TsROtzD#M&up! zuAgnqSpPd`ab#m|y@`X)cO19Bd}lzhFFOY2D_2r;QRsL`^N_;13`A7);M^o-;8A$K zTMf;3!eP!hH*Q;Udw}(iGtP0_a+QT6VR&xRzv`hbAVhB2BXr9|ZbOCMP`I@>6y
BlHkSSj8ek?%q^u3H?pHn*Yh*3f(EbLc&hFqDj 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 S92l#A=I5OLr<8)Kn*R&g#L2$^ diff --git a/klippy/clocksync.pyc b/klippy/clocksync.pyc deleted file mode 100644 index bd3aeea5bc13750cd453a7a75608456163e6769f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9146 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 diff --git a/klippy/configfile.py b/klippy/configfile.py index 63dd814..3cf323a 100644 --- a/klippy/configfile.py +++ b/klippy/configfile.py @@ -147,6 +147,8 @@ class PrinterConfig: gcode = self.printer.lookup_object('gcode') gcode.register_command("SAVE_CONFIG", self.cmd_SAVE_CONFIG, desc=self.cmd_SAVE_CONFIG_help) + gcode.register_command("SAVE_CONFIG_QD", self.cmd_SAVE_CONFIG_QD, + desc=self.cmd_SAVE_CONFIG_QD_help) def get_printer(self): return self.printer def _read_config_file(self, filename): @@ -408,12 +410,62 @@ class PrinterConfig: try: f = open(temp_name, 'w') f.write(data) + f.flush() f.close() os.rename(cfgname, backup_name) os.rename(temp_name, cfgname) + os.system("sync") except: msg = "Unable to write config file during SAVE_CONFIG" logging.exception(msg) raise gcode.error(msg) # Request a restart - gcode.request_restart('restart') + gcode.request_restart('firmware_restart') + + cmd_SAVE_CONFIG_QD_help = "Overwrite config file and restart" + def cmd_SAVE_CONFIG_QD(self, gcmd): + if not self.autosave.fileconfig.sections(): + return + gcode = self.printer.lookup_object('gcode') + # Create string containing autosave data + autosave_data = self._build_config_string(self.autosave) + lines = [('#*# ' + l).strip() + for l in autosave_data.split('\n')] + lines.insert(0, "\n" + AUTOSAVE_HEADER.rstrip()) + lines.append("") + autosave_data = '\n'.join(lines) + # Read in and validate current config file + cfgname = self.printer.get_start_args()['config_file'] + try: + data = self._read_config_file(cfgname) + regular_data, old_autosave_data = self._find_autosave_data(data) + config = self._build_config_wrapper(regular_data, cfgname) + except error as e: + msg = "Unable to parse existing config on SAVE_CONFIG" + logging.exception(msg) + raise gcode.error(msg) + regular_data = self._strip_duplicates(regular_data, self.autosave) + self._disallow_include_conflicts(regular_data, cfgname, gcode) + data = regular_data.rstrip() + autosave_data + # Determine filenames + datestr = time.strftime("-%Y%m%d_%H%M%S") + backup_name = cfgname + datestr + temp_name = cfgname + "_autosave" + if cfgname.endswith(".cfg"): + backup_name = cfgname[:-4] + datestr + ".cfg" + temp_name = cfgname[:-4] + "_autosave.cfg" + # Create new config file with temporary name and swap with main config + logging.info("SAVE_CONFIG to '%s' (backup in '%s')", + cfgname, backup_name) + try: + f = open(temp_name, 'w') + f.write(data) + f.flush() + f.close() + os.rename(cfgname, backup_name) + os.rename(temp_name, cfgname) + os.system("sync") + except: + msg = "Unable to write config file during SAVE_CONFIG" + logging.exception(msg) + raise gcode.error(msg) diff --git a/klippy/configfile.pyc b/klippy/configfile.pyc deleted file mode 100644 index 37524dfb7aad9915ee419f1ac460bb1a6277afd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18254 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 a@y4wEUtyjh^U2S60~eEzXODlmKl6XU#e@O? diff --git a/klippy/extras/__init__.pyc b/klippy/extras/__init__.pyc deleted file mode 100644 index 0f01a3ce42943e3c7321a4938b6f0685849255b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmZSn%*(Ym^PO2Tq)Dj?O000A}8)N_g diff --git a/klippy/extras/adc_temperature.pyc b/klippy/extras/adc_temperature.pyc deleted file mode 100644 index 318f6dbd82100c7f06b3d1dd2180c08d4a596c19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21539 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

k 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 diff --git a/klippy/extras/bltouch.pyc b/klippy/extras/bltouch.pyc deleted file mode 100644 index be40f45ea808518f17fcb0031d327b37e481bac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10862 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

;^O|04e7eGA|a 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 diff --git a/klippy/extras/board_pins.pyc b/klippy/extras/board_pins.pyc deleted file mode 100644 index 6d5a2ee3af4c9c6fa0dd12b5f04ec8ae014c70b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1491 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 diff --git a/klippy/extras/buttons.pyc b/klippy/extras/buttons.pyc deleted file mode 100644 index 8665e7cbfcbf4bb61849e420e2274a60eaa8f5c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10502 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 diff --git a/klippy/extras/chamber_fan.py b/klippy/extras/chamber_fan.py new file mode 100644 index 0000000..b87b02d --- /dev/null +++ b/klippy/extras/chamber_fan.py @@ -0,0 +1,52 @@ +from . import fan + +PIN_MIN_TIME = 0.100 + +class ChamberFan: + def __init__(self, config): + self.printer = config.get_printer() + self.printer.register_event_handler("klippy:ready", self.handle_ready) + self.printer.register_event_handler("klippy:connect", + self.handle_connect) + self.printer.load_object(config, 'heaters') + self.heaters = [] + self.fan = fan.Fan(config) + self.fan_speed = config.getfloat('fan_speed', default=1., + minval=0., maxval=1.) + self.idle_speed = config.getfloat( + 'idle_speed', default=self.fan_speed, minval=0., maxval=1.) + self.idle_timeout = config.getint("idle_timeout", default=30, minval=0) + self.heater_names = config.getlist("heater", ()) + self.last_on = self.idle_timeout + self.last_speed = 0. + def handle_connect(self): + # Heater lookup + pheaters = self.printer.lookup_object('heaters') + self.heaters = [pheaters.lookup_heater(n) for n in self.heater_names] + def handle_ready(self): + reactor = self.printer.get_reactor() + reactor.register_timer(self.callback, reactor.monotonic()+PIN_MIN_TIME) + def get_status(self, eventtime): + return self.fan.get_status(eventtime) + def callback(self, eventtime): + speed = 0. + active = False + for heater in self.heaters: + _, target_temp = heater.get_temp(eventtime) + if target_temp: + active = True + if active: + self.last_on = 0 + speed = self.fan_speed + elif self.last_on < self.idle_timeout: + speed = self.idle_speed + self.last_on += 1 + if speed != self.last_speed: + self.last_speed = speed + curtime = self.printer.get_reactor().monotonic() + print_time = self.fan.get_mcu().estimated_print_time(curtime) + self.fan.set_speed(print_time + PIN_MIN_TIME, speed) + return eventtime + 1. + +def load_config_prefix(config): + return ChamberFan(config) diff --git a/klippy/extras/delayed_gcode.pyc b/klippy/extras/delayed_gcode.pyc deleted file mode 100644 index a4d169429f369a8e66e8a5f00b9c216ca8fe3413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2679 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 b&C-rtyw)G=J6miFN8)P9qW?escPnr^(!UBm diff --git a/klippy/extras/display/hd44780.pyc b/klippy/extras/display/hd44780.pyc deleted file mode 100644 index e6995c30e174612f1a0b9972f79e12dc77ae9acd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5864 zcmb_gOK%(36+SbhC{dOyS(YWy2?E-#8zM%lKKx4SXDs;v3v@72qFRVLp=L(pNF;}v zJA|b|a@r~dvdW^104@3(y6d8g0{sbHchODIA5e7DUHg6KjwrR+RhBt-&V8Tz-S0fc zg@2BZ{wey~Mj-iL0q+NR%*QA~{2XbEtU+*P&5^JmYp%qughl>tqK@CqwSvUx9Fnkv z3c7}64V4iIM{i)RlLPys5&=Mf(BHBPbb$d(>_ zU&MC=Dnr89g?$u3}MD^xoBy)?;^AZhz?H_p@o+Hp7X+flcfwRB3* zihJf;$5X0}cDu@*tDU~dsvA)?=~hjn6IDAwKPzA$_nd`vxu4gZf~y zHsigKB<-lt)q}01{mA2RkX8o;tt1Yj>^y2q&+3c*(qjF|%2WTvhbzxs)R(`}zOeZC z;YUj=9^Hm6SWmi9HiTLP_mO%$nC?$pxKEHqjV$t$IMimo=g^!+&Dh{zevouGtu6Ap9m#RwwW6Jj2_cO?M)az&ZGM3iF+i3_I9zl9^HGJ z6L@a)`Mn0VH8s>k3-bd=^R1*4&3CrV{B}F;^`g|i_vWEz+A#BBY1u+nI9CI#skyIp>{8r|eET6=$Mw(J482 z+<+Y9CGi5)gZ>@@U59#2IC08q>+p&2;}zC5_#8>aLEF$kDh;GzD`8SmfD-(~=7`MT z<>Z^dgTg`DeJ~0U0Zz0`Z+hr(j6ZUu4!Sg|9d{vE&>2woy75uw?8&jJf?ap7hSk*2 zpx3Iv8l zf=P^Y%X*f&+D{toC`vWn-0^91YH>M!jA8^4do(E5p12}Z8w%X=OqKuE!4cR4q%h4rV- zCk0v;vK}G^GjnCzmGqkIj1nj>rM*TkBY7R@+A9;Ee3U z@{2ONKPuZpl71=sNS=@uAv&mxc8r*twNopYd*^tSyE|VBeyh7nTzX-BL3OuVp&V15 zATGVo31R=;-N zv=*_fsiF|K0(EQJ(WzX3pKEa>bm3y?yG z8p2|32uQxU4~By#*i%2XrukjKbRIor*#bQwfW|}Wc`z{N(V?ue2Pr)aS7}7}>oJ{Q z%p4#l=r&O#0x^@G=5K$)zdznrKhlZ2)?Fz>7_V@imGD#(&lue6hNk;-=Cz{U(Z z*2rXW2lNYV?ub~1+=O98)0YM^4mdmdRgDgsQ|g#O9I?((DXIbIImTL!Q)^{a&`-In zO>~%{>I&*hnNoWnV4!!K#S$muIaLDWtzZFs8XrZD3!qZjdDk5Sp(;pgt~dc5GCli% zP`jwWm@|}mwX?htN4ATSzOPyecuE)S7s?*gRl&ofOx(*ycJSoi}9 zi0d)6wIK|G)QG2Id;;>9Z2L9}#dHN6dBP7QQ{!BXPu|CrR#~jGAlS-M(@ruKHsZ{F z4F#=6dir~yyR($ln@CYL44Hy28-DN1Af^K?bTeg%TPRNbRmwP`y+vu@=$i|0(!YXs373iSd0Ga>y27v;)=kIu99gan$~>IoUQ z?D0V2O%T%N;+i|@m8dJU5-;cUgdsMJk0Byc*TneWfM1~{zk(Wj^ABnI4&PU%`+g@0 z`)yP`UWtC9s84#_Xq(99X^ejwfjqSmes+4e67eDyNT|hYp*TK(O8@7#zDE!l?v?8$ zr+leAHdZQMD4#74;oo@KEf?)hOrO-Bwv%Qv?l!$!Xz(g5=2(2n;`=PP0lZ@& UyGI2KGnX;9#JtWOcT4Vn0N?(G)Bpeg diff --git a/klippy/extras/display/hd44780_spi.pyc b/klippy/extras/display/hd44780_spi.pyc deleted file mode 100644 index 17b6f901acaa41711e2e401341932e36adca2132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5141 zcmb_g+in}z72SsyQIsi5mgvw*RYOUehN#fWXkEtv+*r2d*e(<%9mxOi+^DqC^-i^Lc(K^)U*UM5>(|&ku#Cs>|(~qR`Uk7kN$(d7Pb&+8jzfa?;mARos;t*8HZ1EE>5FP zH+Q`>P2Om~8{EJD!NYrQHjKW({8N5*2oi#Aa3VYz4C7QbiV}iRmE}ta0tQPu4z|kL zsE~QC1mhKLR4D{UF67v~L76yGli-FnX2scR)^Ms%Y4}dzeTFw%g$!dO2P*$q#5LMg zjv(<_K{!~FyetP(oU+^nB}^GkRk+}wA_vpdAVKZ9`#Ct8(~+7)cFnAwa+5;j zbCS=?Sy30@s$#D^Wr*=-tYt4ZUx^4p*nCLX3qp7=@Mjp8VWctFYw$S{iC zWSB=uoLAB9d%53rF$nwtKE#p&r60wi+YjST-px6)qJWFmIj``FzCbhjnuLanra>~c zR#vY6oStg$^tAaF=5*^$n7hL?it{kdD;T_JlRM1qCrLl_;=F|Jc6t;#PJUG8lMqU3;gz_Nz}@Ti+Vrc>eK|*PGi8fvj8X zALk+b&pXatvbA168VMZCyKN#d%a z+ptYXD#!sa3_KfIAD8552R@^&O$YwgEXV%uqN^>`E2yzn^e@mRnR93YXMyA8s9 z-7Jg)hceq$%bcSi{vc3HMVU(o>H0ww`~Af4sUe7|$!MQABpdF1cR$Lrd+ZXd0tMHg z^1J3eqfUIOX$qv8evHQGAr-l?cke>CP(GB5m;{9uMHQ+;(Dg@G!-o~wxuz%@QFDs( zL$*|9stis*8JY7A8qT{QDn6Am8S!}l#ec|OB3sO?Su{RF%`9HV2^AK}Nk&`e@@(wA zG@lpc1c)lgiDC(|^?Ig@dTVARznZKR)J{)@pEJE$MQKoC@C$=2@*(I##7QO zO8SI~gO(7_e_N2lCvsAe(I1Hih&-DU1EABMxr%U+u(bX=$Jp4-V?2IW@4Y&dLR4ri)qEG8nmBu^B(+C}B#+bvR*|BPALRl6E)N{+G0{V{D z8WD}7g@u~G$u-XRKs3IE@zEemy*yNp`9m~BMutRQjMzyZLJo1>=NCkCleTmeQVch7 z_~y#7l73)2{Jy>KMu8@pNNKDz(Y=GH-OhCHVUp>HpB%-xdTNXq$5BRow(Shh^1IQ{ z#nfc*syz0OvhE{novnaKVF__@s?aod3qLUPrf!zaTZoy9aNxRm*Fu@9yDV}3fzB8~ z4G+wv5f2n#=3tS*4%UGgfo+ZeGCK-P4VbVnU`VP!1g=mIbV~Gs81)spfH1xV9y+!;;)6?-z!f-~U;6{$DK0UQJ~K(&^p@D#<*ne1>F#SYvx zU=>2Ox1yheMn5B=vTb=lsUt$5^Vh%d?{AMajA%vcF!NuQ25IQ|d6KFL2T6<~CXRfE z2{C7p6J~id0NeswL%8VK54(+A4y z%Trd>!1QQ)_s}5GWN2_!Nywi%B@(2wgwD0}!6-gb4?cE&#KlC&L=>pTdXq+Z=xS+& zeY0s0f%;bP>cxW2N=BdI%{DC_krTyCJ^|Fx)(vO3V_tTs-(CVpnIX9 zM~Ab5$A(O;F>INDa_kqQhpH5fOJHkYBNc+70;!e6p+j3=(+)MK6=0^)*kUk7iFmEc zOslG!oYpcF%Jx{uc%`*DL@@;&)kw{$*8YqJ#aBF8+UA60;RWmNtVu~VDLGHsqQK6tNQhN6Th>pk{aBmnh~M?n z$=HIGpGB}*gGFA(yONj%7TQQ6%cg`foH3zfO;h45UNsFnP}G(dZY|3b$NpC$3Nsmw zSv#L|oO;7<u2Frder1(y@o;4VV-h$5qGvpUV~f-p{?&Ai9<#5W~SJmGS%-_ zr{_x5+tr)ZGXBlt+F7!v5f&P5`$?x0;Xf$QxBoxjG}xl=IG>Pk%gJ%5ihN{M_t7-A Q&RDk8%sei~^}=lFzfri`1^@s6 diff --git a/klippy/extras/display/menu.pyc b/klippy/extras/display/menu.pyc deleted file mode 100644 index 687fb170571fc6eaeaa829af6ec75112de75f82f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39406 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 diff --git a/klippy/extras/display/menu_keys.pyc b/klippy/extras/display/menu_keys.pyc deleted file mode 100644 index 3535a1710ac0e957d47afc5ac3f4778e6cf11d65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4440 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 BWyt^l diff --git a/klippy/extras/display/uc1701.pyc b/klippy/extras/display/uc1701.pyc deleted file mode 100644 index 0b5ff81bdd4450dc6657a9e14dd835d577d224e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10075 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 diff --git a/klippy/extras/endstop_phase.py b/klippy/extras/endstop_phase.py index a20cdc3..bd34ddb 100644 --- a/klippy/extras/endstop_phase.py +++ b/klippy/extras/endstop_phase.py @@ -6,7 +6,7 @@ import math, logging import stepper -TRINAMIC_DRIVERS = ["tmc2130", "tmc2208", "tmc2209", "tmc2240", "tmc2660", "tmc5160"] +TRINAMIC_DRIVERS = ["tmc2130", "tmc2208", "tmc2209", "tmc2660", "tmc5160"] # Calculate the trigger phase of a stepper motor class PhaseCalc: diff --git a/klippy/extras/exclude_object.pyc b/klippy/extras/exclude_object.pyc deleted file mode 100644 index 7423a5849285ec4b8aa0b641bd18d5af5ec1e252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11087 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 diff --git a/klippy/extras/fan_generic.pyc b/klippy/extras/fan_generic.pyc deleted file mode 100644 index 3a4e476111e437c22956b69218cff6343f17330a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1590 zcmbtUOKuZE5bYj+Vkbm|gkOY^yh6h!<^Tu*Az^1lV>Woxn#}Y#KUbhnqu}em-n(FTAs#jHS-1@z}`BVQoO~mSH;r$k3UO}b!Nl^$c_rh!Pi zB5jEuLM(;&Ji)rn#iS+Dju?jEw5t-&SVU;;s*tGsyDF=Ou6ZhnQ@YoLQX;P=!Zo?WM zeNxBoMrwR=bo9Y>7Awmpq}n9m77R-@)mAmW*Ory9>Epmby>z$>gJo2srnZq3;l0bo#~S1|qhUZ1zGa zRcaI0%?`uK`|_#W4|e4}*_D0ixIunU4k6Bq({tkmA28doBk?Gtk8dC2v2Di2c47Ph zxo!JU`irit%}aeJ{1Kb{2x6F4c%T^U~1~*gfHRXXNJVSaZWK z-+zK;HCa)|))&Z;85YPdNoDi8yq>YU61if@xhV#_A`U$7R`Gqr<9BQrSjb%&k`Svw zlA%gjc3!EnP8S815oa3hQL$YSBdjqv>lW0B_(#-(7^*Ibvegd~?ow{3LM#?Dz~9K4 zB=m3r9BHCmEZ2x`0md={29sg{{4(%O>ny)`hTRo2Mm|291~ka-l*92H<~qBxZUdo* RFt2^j-*6;uKs&+S-d{uCO6>pu diff --git a/klippy/extras/filament_switch_sensor.pyc b/klippy/extras/filament_switch_sensor.pyc deleted file mode 100644 index fdb174dec35f413da08c2e4100e2bf19ae5aaff3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5764 zcmcIoUw0cv6`zr0`G1_)u~Ro`sswycONmQQ36KMA5~G~b)2hkHDbze{<=vINva~C9 zMkPKcc`{#%55OZ2ymENp8}I?(_q($z*$GJ>Yon(qBl!>h z+HMI$GfuOy`z#)e;(S6-W8)#3jnSbIuM#A{rb}!U8GxS9-&E_rRJb4Tfgb z-aI)Yz=DeA)!w3t7G%1lOsBaBN?`>ZFFT92gJ%B@PM&Mkm+SR4FA4ga&y@-)vQgy{ zr#1Hdn(EJ#EA?^(Y*f^V7O*)v1x~8UEvOS9!P!NDTvYi`Dp0N-08w5d^t}T}=+x1QoWHRdng>)>UD|pF!i^6M@6eLy{S%W`V`#SS-5vgxQ4*tj-BRJsJAV4=w>iH z2(u`5D;SNsV;cuq8suV`Vx)d8kL`FEJ6ei>2g7cdX9D111CIs!N>-E9#P^HU+;-Os*@izOT;Z2VoEy5KbI+mOE-9}6s5`K+yNvx_GJs5=jS)-$zwQziF|b)4#A$bb5JzqUOL=^dScs-T zcGyj$0R%;^0zV17)@Xba;NkdL5N5+6pxq`m!eJErZ>@m*$@9}p0%;jCXJ&~FH zQ{uwIz>Dk7=vY(|1WB5>AYd}E_lQ|<>J`1J*DLFKUT^5jdR^brb@XqcU)9(3^~wr% z<|`ZMm(Ui9-;mbC#^Ak!X5U7~Ac6lfVqe1?5nDW;aP899?#rbO-N=!dVU}htOOwzv zFl!R8`7uXm7jb*D1w8MgS+b#Y$RCQAvKQ_TF+h$f0y^yEiChK&8vIKhd4a%PReec4 z8i}L;1q2cXEeHnc~> zs9|W|ZWSFA83jI&6;^9#&f-$CEN&)V8^q7z(1$;9)+Wh`I7Qata^h|bYaS&$td~3! zW-dzP5+jRfe%3QT;C1NBs#=FNt-_}2y5V&~y-ajMucG8cGaSIKkeEb-VooB$CWq#y z>=>2&l*VH|;uP&7EXZG{NG(2U6@lh12$W_;*4Y>%cews7y5rl$ExS&$GPAAUsV2*bA(HNzln*VF;Ua$JVnj9=Rk-CEEf3r*U-33XLD1wy0q-G} z6n=>uUQs!U6iCM}1zwuso6=%*m*t1lF!i>klGs*_4yCI`KW+F%6nCf}Fxv%f-; z`j1;W-6h@v4@$E)qeWDDBibv17O{#_X)+M`2SS1z8Zb)Wnc&M3S0?tytVCcC_G3Ul zDw1@gBZ;}OW$!h-mo&sn8mRA3e8kZQja^`CY~A^&_u7NLo_qblCL^J_&5o(Vn_q*Y zAF!K7Oj-qtDhsB^R^o!WPLOxmF_B8bP10UwSc*tJGARwh?qIOr4Uf#v2u*V`ylPWM zV&0^b*kF=viwZ>|j`=kAL4jYQLgk0nzdGUi@BshnEBlzi-m^&3)kh1Da%1hK0-8{s{9Y<2XNVxWl;NEuxY2WcHHvia@G>r%-l? z=jZ6?Kqv?{DGKkB8;BGso?1RwXvH}^p6?@(kxx-X)V5pbUm_z;Qp#=OAojiQgM{8E z&_33RD~JIzm!nJ`WhfJ9)~8}|4O<5&Z>3%z+6%KqL&<)NX6Mi;nB3*cvbJ=wPVB4* zcydc$h&HlxJL~mcH9S^4l%S+~CO#2uARiz~Yh!R~wI4kEqLr{f6dMv_qo*SzNf0kNg7MZ@u*F{lN^O+U|^0EqoVHS-MIRo<(07%&>vBQTFDN@23`<&{ex7i|Q&UZzQ;9SrR3l2hLMS}KRuS4a z&_dpvZ4#}nV!{Z8f2lKBF^G()%eHrorx+UA;50(`w8aE+VNCA=S&mk^3uBOJv-^sj zI0s>-1Z8wiQ9TAmTwYm{gMH72yg1uLL<^YsbOzyc+g{*B1W^ DzuMAv diff --git a/klippy/extras/force_move.py b/klippy/extras/force_move.py index d8301b8..c0ab459 100644 --- a/klippy/extras/force_move.py +++ b/klippy/extras/force_move.py @@ -32,6 +32,7 @@ class ForceMove: def __init__(self, config): self.printer = config.get_printer() self.steppers = {} + self._enable = config.getboolean("enable_force_move", False) # Setup iterative solver ffi_main, ffi_lib = chelper.get_ffi() self.trapq = ffi_main.gc(ffi_lib.trapq_alloc(), ffi_lib.trapq_free) @@ -44,8 +45,8 @@ class ForceMove: gcode.register_command('STEPPER_BUZZ', self.cmd_STEPPER_BUZZ, desc=self.cmd_STEPPER_BUZZ_help) gcode.register_command('SET_KINEMATIC_POSITION', - self.cmd_SET_KINEMATIC_POSITION, - desc=self.cmd_SET_KINEMATIC_POSITION_help) + self.cmd_SET_KINEMATIC_POSITION, + desc=self.cmd_SET_KINEMATIC_POSITION_help) if config.getboolean("enable_force_move", False): gcode.register_command('FORCE_MOVE', self.cmd_FORCE_MOVE, desc=self.cmd_FORCE_MOVE_help) @@ -113,16 +114,18 @@ class ForceMove: self._restore_enable(stepper, was_enable) cmd_FORCE_MOVE_help = "Manually move a stepper; invalidates kinematics" def cmd_FORCE_MOVE(self, gcmd): - stepper = self._lookup_stepper(gcmd) - distance = gcmd.get_float('DISTANCE') - speed = gcmd.get_float('VELOCITY', above=0.) - accel = gcmd.get_float('ACCEL', 0., minval=0.) - logging.info("FORCE_MOVE %s distance=%.3f velocity=%.3f accel=%.3f", - stepper.get_name(), distance, speed, accel) - self._force_enable(stepper) - self.manual_move(stepper, distance, speed, accel) + if self._enable: + stepper = self._lookup_stepper(gcmd) + distance = gcmd.get_float('DISTANCE') + speed = gcmd.get_float('VELOCITY', above=0.) + accel = gcmd.get_float('ACCEL', 0., minval=0.) + logging.info("FORCE_MOVE %s distance=%.3f velocity=%.3f accel=%.3f", + stepper.get_name(), distance, speed, accel) + self._force_enable(stepper) + self.manual_move(stepper, distance, speed, accel) cmd_SET_KINEMATIC_POSITION_help = "Force a low-level kinematic position" def cmd_SET_KINEMATIC_POSITION(self, gcmd): +# if self._enable: toolhead = self.printer.lookup_object('toolhead') toolhead.get_last_move_time() curpos = toolhead.get_position() @@ -131,7 +134,6 @@ class ForceMove: z = gcmd.get_float('Z', curpos[2]) logging.info("SET_KINEMATIC_POSITION pos=%.3f,%.3f,%.3f", x, y, z) toolhead.set_position([x, y, z, curpos[3]], homing_axes=(0, 1, 2)) - def load_config(config): return ForceMove(config) diff --git a/klippy/extras/force_move.pyc b/klippy/extras/force_move.pyc deleted file mode 100644 index b3de87cc873ca230142d111e5b9e1ebeeeac5c5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6451 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 diff --git a/klippy/extras/gcode_arcs.pyc b/klippy/extras/gcode_arcs.pyc deleted file mode 100644 index f984b1c1ffdc51c2e73d7de87909145057066c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3985 zcmbtX&2A&d5w0dFN~A>UkCG_M@akp;PAse!aROvvuVZ@`yFi59kpW9W7K71Di#rlI zLw7efy9noE*~ly8kV}A^a`6-7mS^xWx13`j50HFSJwt9_7%1<5bJrw&>R0)2HMnvZzYLqNdQm3zoZivp#6(tSsoI{}KWYENf^gs9< zyEe#=Onfq(OmgGqx)s>JMzKFfr7;sKXrY32)p;Ez8s$>wSko`lq~K(*gqd*-6&LP& zjAH+QYNqH)ESnL9O1feg+YPM^x~VA^)d}?#1~+&NwscctPPkO@o0K%^1{%Oz7UnWt ztx)3W7LR8|SDw2fBih2nW=;kz*y254w9Q9Tm*&|JJbb?U(6PzUMgCluEFy8%FwPSl zj=`4^(sjJW2k-gj&R`Wi$JJ1~aAMNTY2%jBujmyoyBy__b6e<)$KgbqFfwsy^>C~+ zC-Wgs!u;Y&$1dR0b{$lsJine!Dt3d}8>oyPrWOl@aXubLS>pJR<8czgt~q&Uz?M3m zWcBFM3-atT9S*=EsqD`{9X-p(`e=M@kFH1Q1h)D1<&l2jOk|I|7htb_ckRPWy!f)s@8C3?aNk`v{i;v4wyGw@J)h z_FQy47cm5G%X1NCp4(<{z--jlEi!+uR$YB%RX=i#k`9k7pvZH&6{khB61 zkVEDA_jGKOs}=1^$7aP@6-QtX*c@t@y-Y*61FN-Y2=ss-8dQiCjiN(Emu6x-o9z_4 zW{dXCQ^mX7hLgJDF)Y-jKB8r|#@6g$CLH7S@rrxdHKix+`k?=uP4!HGh` zU&#u+Uu@8* z7O*ns;R14b-XnW3pO@*>J=5m!A&fMKj}C`0%`g9{Oua8)INv10)ilvK9hk$0Jh(kz zSn+Vm6l1h?k(*ixUu_KDL4Fxn;1QaE=Qz)_$M8{<;lXsQaip_=h2q%QX!tVpj`W9$3~!Z%ukETSc!!PVx|j zkq-4R9&z96a~Cal!QEq2LtF#T8gz~K_^(1Q$=n+CII1~v8)W|ezmi{;5W<^zY zdXui_JhlitG@b|4X49a))Bz!Iho__I1D9A_0U%ol2*R(62|$Z=GEY=FLb^O+i!whA z7%C_N4(17}e(^hvF4r zEtIv;c+brGw1;=0IH1`sUE#D3JY0UGJ}(*aU@CM@2AsJa3$_WW37*XXsv_={#CIPK zI7yStWE{C?5?zstGM^nzQeixMImw-jxdc>6xQ?S2A_C;(CgAv&u8A@L5rYlVNNM8| z4=flQ#Szl8EE#Z2czEIbO+wj426GudcwByYiC_=jVJY`d!;elMo(OriAkRI?3!3n; zENH?flHtVwBjlHlU+p}RO&AxRR>YY+53qVVicE-P@wp!Pyfw}Ag2NV=C`kdk?B7c~ zGU0gaIB`TWoL^QmIkhZPV(T{10s6a0aIDId8CXYNIVaI2JK%pV@+73P#{}7NcrGM7 z7=Grta3YiZ%EYggrM(Rezd^CbsHoNiY&GkvYPH@4eDQY&-!;_(zgOe7SKp{J@U_9& zsjaJ9^|sJ&qTa^$0Lk+$wOQ*ZxqxMkoke3Eh63gx{)8mc5xRjqE&M76oGeN%8n8i& z9SQZrGy4Eah;>@NkWJNUwd(l38?(c>@RRy6ipYTvNK6pFCj*upOD!rq#mBcW>4#gh w_)iqef0nO#VYYyjSIf6H_!U>o3?fvE^?sxa#PN5%t3Tkp!19Z~*4%#nUk))9Hvj+t diff --git a/klippy/extras/gcode_macro.pyc b/klippy/extras/gcode_macro.pyc deleted file mode 100644 index cf544bce60e6a811a840d49ccf197837a2f55fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9129 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 TcV7>tCT7mz|M}L$%&q?cAK)#> diff --git a/klippy/extras/gcode_macro_break.py b/klippy/extras/gcode_macro_break.py new file mode 100644 index 0000000..dcf5c34 --- /dev/null +++ b/klippy/extras/gcode_macro_break.py @@ -0,0 +1,15 @@ +class GCodeMacroBreaker: + def __init__(self, config): + # Gcode macro interupt + self.printer = config.get_printer() + webhooks = self.printer.lookup_object('webhooks') + webhooks.register_endpoint("breakmacro", self._handle_breakmacro) + webhooks.register_endpoint("resumemacro", self._handle_resumemacro) + self.gcode = self.printer.lookup_object('gcode') + def _handle_breakmacro(self, web_request): + self.gcode.break_flag = True + def _handle_resumemacro(self, web_request): + self.gcode.break_flag = False + +def load_config(config): + return GCodeMacroBreaker(config) diff --git a/klippy/extras/gcode_move.pyc b/klippy/extras/gcode_move.pyc deleted file mode 100644 index 4910548a7759f85186b14d7b35edbba13d660cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12174 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 C=VPS+ diff --git a/klippy/extras/gcode_shell_command.py b/klippy/extras/gcode_shell_command.py new file mode 100644 index 0000000..bb38ae5 --- /dev/null +++ b/klippy/extras/gcode_shell_command.py @@ -0,0 +1,87 @@ +# Run a shell command via gcode +# +# Copyright (C) 2019 Eric Callahan +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import os +import shlex +import subprocess +import logging + +class ShellCommand: + def __init__(self, config): + self.name = config.get_name().split()[-1] + self.printer = config.get_printer() + self.gcode = self.printer.lookup_object('gcode') + cmd = config.get('command') + cmd = os.path.expanduser(cmd) + self.command = shlex.split(cmd) + self.timeout = config.getfloat('timeout', 2., above=0.) + self.verbose = config.getboolean('verbose', True) + self.proc_fd = None + self.partial_output = "" + self.gcode.register_mux_command( + "RUN_SHELL_COMMAND", "CMD", self.name, + self.cmd_RUN_SHELL_COMMAND, + desc=self.cmd_RUN_SHELL_COMMAND_help) + + def _process_output(self, eventime): + if self.proc_fd is None: + return + try: + data = os.read(self.proc_fd, 4096) + except Exception: + pass + data = self.partial_output + data.decode() + if '\n' not in data: + self.partial_output = data + return + elif data[-1] != '\n': + split = data.rfind('\n') + 1 + self.partial_output = data[split:] + data = data[:split] + else: + self.partial_output = "" + self.gcode.respond_info(data) + + cmd_RUN_SHELL_COMMAND_help = "Run a linux shell command" + def cmd_RUN_SHELL_COMMAND(self, params): + gcode_params = params.get('PARAMS','') + gcode_params = shlex.split(gcode_params) + reactor = self.printer.get_reactor() + try: + proc = subprocess.Popen( + self.command + gcode_params, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + except Exception: + logging.exception( + "shell_command: Command {%s} failed" % (self.name)) + raise self.gcode.error("Error running command {%s}" % (self.name)) + if self.verbose: + self.proc_fd = proc.stdout.fileno() + self.gcode.respond_info("Running Command {%s}...:" % (self.name)) + hdl = reactor.register_fd(self.proc_fd, self._process_output) + eventtime = reactor.monotonic() + endtime = eventtime + self.timeout + complete = False + while eventtime < endtime: + eventtime = reactor.pause(eventtime + .05) + if proc.poll() is not None: + complete = True + break + if not complete: + proc.terminate() + if self.verbose: + if self.partial_output: + self.gcode.respond_info(self.partial_output) + self.partial_output = "" + if complete: + msg = "Command {%s} finished\n" % (self.name) + else: + msg = "Command {%s} timed out" % (self.name) + self.gcode.respond_info(msg) + reactor.unregister_fd(hdl) + self.proc_fd = None + + +def load_config_prefix(config): + return ShellCommand(config) diff --git a/klippy/extras/hall_filament_width_sensor.py b/klippy/extras/hall_filament_width_sensor.py index 276dd14..e3f9bb8 100644 --- a/klippy/extras/hall_filament_width_sensor.py +++ b/klippy/extras/hall_filament_width_sensor.py @@ -146,11 +146,11 @@ class HallFilamentWidthSensor: and (self.filament_width >= self.min_diameter)): percentage = round(self.nominal_filament_dia**2 / self.filament_width**2 * 100) - self.gcode.run_script("M221 S" + str(percentage)) - else: - self.gcode.run_script("M221 S100") + # self.gcode.run_script("M221 S" + str(percentage)) + # else: + # self.gcode.run_script("M221 S100") else: - self.gcode.run_script("M221 S100") + # self.gcode.run_script("M221 S100") self.filament_array = [] if self.is_active: @@ -171,7 +171,7 @@ class HallFilamentWidthSensor: self.filament_array = [] gcmd.respond_info("Filament width measurements cleared!") # Set extrude multiplier to 100% - self.gcode.run_script_from_command("M221 S100") + # self.gcode.run_script_from_command("M221 S100") def cmd_M405(self, gcmd): response = "Filament width sensor Turned On" @@ -196,7 +196,7 @@ class HallFilamentWidthSensor: # Clear filament array self.filament_array = [] # Set extrude multiplier to 100% - self.gcode.run_script_from_command("M221 S100") + # self.gcode.run_script_from_command("M221 S100") gcmd.respond_info(response) def cmd_Get_Raw_Values(self, gcmd): diff --git a/klippy/extras/heater_bed.pyc b/klippy/extras/heater_bed.pyc deleted file mode 100644 index 55dde002a0304dbef7d5c81ab8992c7bb5f07fce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmbVM%We}f6t!oPK0>RMwg?alSfSZKio^y9Rj5da4H0tK(2X^nanq!kOf+@`mD*MK z1HOk};V1Y3&bgjav22t0&b@bhU+36K|7`bux!)&+YCkES@38zch!Ve!Dz*Bd)JmzZ z$FLI`$6A%C8f9H<3Of*=o5?)5=A+9Yk6igLUxJrMSpGSLi;+rFB+8|dTdQLfiFv!q zj5796FtCF~<2{!D32~{_R9d-I%4!8Ug(smOU9J*!1wB#IR6Gei+}V+x9X0KWDRK&P zO-zx@v(BMbT3sPLRnrX)&k~!=qgz)D?uiTdjIuTKH4N*JXEMDH8v0QnHshi$UEmm> zUcEkOl{W|3J$M4e*af?Y*hz|Oo$qFKUfTL(>WUDyV0#yq3mc0BR&CW@o5zPdEWOmF z>ch4qsm~GBrXf|08&5n~vPE50`MeApa28c*rNtWqZL)D`+Pm4Qlq~A`>0~S+i*{T? zhBB-u{0nGf8^`XOqRkHSu{daNk3d`#}t~C$4sdQgI zz_+ja$*$hh1jAw2otQF-OkbkW5j%p>l= zx^t%_l8tzlQHk7@mhO38Ico!9v$m?sc;csA+@!e3Qgh!3Y-?Vf4PUPOp-Hw;(3GzjJ^f2ZXPT*DM V>3_BEIJyA-HbQ(T5U{}B{$HC_E*Ag* diff --git a/klippy/extras/heater_fan.pyc b/klippy/extras/heater_fan.pyc deleted file mode 100644 index e67fb026c9109e1e2ae6f74ad0e92bf2081c8c78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2401 zcmbtV&2Ah;5U!s6vDc1a72`OBAQVoE1o4dnim(OY$A?(a7ztq!M&p@Tdv@n%Gu<0( z$$K&{0WX0#Ar8C>&k%_h;QOj)*SUu5ZrAoyS66>k^>t0>->r?mvwuz#X+ItOA7I!| zAyWK|6e6XO6C)-Kp)DaQqP=sy%ttIjdzRB+}&4a2p{_XQn@Z? zI0UN$aT_w(RL8Jcmuo}U(Z+JufXZ}3(oIQksX-9X0CViZWQ)-rkKO|6BgY`lHAB|k z!hBlfv)ScmO%|t@uD@DzOn7$Tnt7TvZgZuNTvpD2jGw~;cL#rIHjd|oi|qN_rS;EM zWM^5Hwl**K-2gVIl~?N#WnR6Ai`D|weES*JZX>PVJuNK5P8{ zZ>>S*gS% zC5O z4E{(HHDX#qVs%>(MO{zlv$jYf@9C>*AFS?M6&oc=T-`Vlc2!W9mnbAznZ!kL8YfdF zR#{iItE)WGGCn;#ik@J6clhKhy}RK%Jde9(E$JN-RVk6$bKaypAu;Y?Se_x~wi%%` ztB%2>XfYTzv!}&Ci$J!ImFq{EIL|HSjbyhjc5~|&6hCi}5}HYPBe)OX=^ln9GVwr( zyn~@Y|HK4j0W&VXX%Rnu_Gn1~^f|@;V<3yJEP8U)6MG<6o-ct+yV4AGTZb;55Bd8Z z>|*R)nRcZ4on&KI@_TyZ6}SXmK`uPU)@3qKC3+lI0SByu4fN<}Yl2$ulCt1lg}kEU z2C{oRVh~5GuF_6k?vKbq&oG9{46}*(o6UP1Zc~u3;ky*~DKJD?Li;kAJ5~bCAusWE zNqs|#SP!M4W!cyS!uMgOZ!4u<_#xe}hxk=ORHi2LreTL75+%Nin#>lxPhe`K*7=qF9Py&=0mh_z%K6>Hz=% diff --git a/klippy/extras/heater_generic.pyc b/klippy/extras/heater_generic.pyc deleted file mode 100644 index 2b1748025bff99f66600b4f5785677c432db34a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmbVIOHRWu5FMuo5YP=PE`XF35qpG?*mnUtHc{$KQ>Xb@_Ec&mScPkG6)wRAc#}|d zkEQqKdH(k7XMXX;-%Cq>$G|=TaSkepK8fBS485iaJXYf>X23HLZ$a-wHPHYzs*yb; z^Z{+CPSi6T>KAf`{52QCA*R|yE&v+-Hh}l$?SKM)M_RjC+8dc-;sX4ad lmD}mk@dQNX#w=3(gcsdloOGmr&eR7yw0*g4_)#YbK)<&MUE}}& diff --git a/klippy/extras/heaters.py b/klippy/extras/heaters.py index b0b2c16..9fdf47b 100644 --- a/klippy/extras/heaters.py +++ b/klippy/extras/heaters.py @@ -241,6 +241,16 @@ class PrinterHeaters: gcode.register_command("M105", self.cmd_M105, when_not_ready=True) gcode.register_command("TEMPERATURE_WAIT", self.cmd_TEMPERATURE_WAIT, desc=self.cmd_TEMPERATURE_WAIT_help) + # Wait heater interupt + webhooks = self.printer.lookup_object('webhooks') + webhooks.register_endpoint("breakheater", self._handle_breakheater) + self.break_flag=False + def _handle_breakheater(self,web_request): + reactor = self.printer.get_reactor() + for heater in self.heaters.values(): + eventtime = reactor.monotonic() + if heater.check_busy(eventtime): + self.break_flag = True def load_config(self, config): self.have_load_sensors = True # Load default temperature sensors @@ -330,7 +340,11 @@ class PrinterHeaters: gcode = self.printer.lookup_object("gcode") reactor = self.printer.get_reactor() eventtime = reactor.monotonic() + self.break_flag = False while not self.printer.is_shutdown() and heater.check_busy(eventtime): + if self.break_flag: + self.break_flag = False + break print_time = toolhead.get_last_move_time() gcode.respond_raw(self._get_temp(eventtime)) eventtime = reactor.pause(eventtime + 1.) @@ -359,7 +373,7 @@ class PrinterHeaters: toolhead = self.printer.lookup_object("toolhead") reactor = self.printer.get_reactor() eventtime = reactor.monotonic() - while not self.printer.is_shutdown(): + while not self.printer.is_shutdown() and not self.break_flag: temp, target = sensor.get_temp(eventtime) if temp >= min_temp and temp <= max_temp: return diff --git a/klippy/extras/heaters.pyc b/klippy/extras/heaters.pyc deleted file mode 100644 index 26d64346f5a2ca5fdf32114366c4f505d5620ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16014 zcmcIrNpKw3d44@J05KpykOWAAqLz_FijZY-k!9LqWO0QgMkFLQz=%eqbcWMCzyO1p z;dFxp64Fjg9ULcBjI!8eXD_>w%Ej57MM)*)D#sO9Wjp4Ut#ZgwRmml%-?9yrIuhaTO8m7Ab|=17*NMn3R-q58zAV~fI9`9cn^nh z4}07m?qIJ=_PLemY~TC2R*4-C*gpq2ICzlFtUQ!e9?mL{xJJPx72@qg@+c|w#BIPG zXL^j3daFc`-3D+4U$oVb4RzyEO;3Ro*oyE`S%3musALD1`*xHB0+b*<3~l4z|XF2u`? zYSY@Q8`eIALDg&R8&R?|9Ug5Y-Sse1x3Tl-$hdf|y21I|F))m-tuM9Llg@gQvb=Li znJZx7PWxumO`G36rSb7vyPYftNnvdG^f0tRF1QUV3fTKeKSfpEc2?X6+%2;@Zp+4A+sC zq9o{avAw9P&1ZFjoqeq;&dSfkon|A^0&1c>jH6cE?g|qaT5qr7-U)z5fLTz8BR1ez&1==#YBI%vKzD>Qu6Lte2W2)l z)r~s%u0R%qQ8TFu8-yj^s+&IdtA#l@PO2DN?JgPQ(WFz%wOf%OP^-3rlv;eA+9v@d z6rmurU@OX#cwF~F96?~_*+-}q&pFr1sn(g)~Al<&U z64eq7GSHJgNxEybb$(e~lp-Z3&SWgZTnBa<*af$I>C9D8Ua)ZC(yX8gVhFSE z5TD&>sS$(7g0=OHpw?bntG2@A0d&;X!r=Q5?j!$eHyESYnIV%2198->i`2n>^~REa zfF0ahBM$0~W@KzGQm!_a+Oa0F=5vtRI{-uMll6R_bq0?W@yAd*y4+rij;^i7M^~GT z4v5qK-8@R-sm4c*PvawsmJG+K=$fYJffE^;Yv!rNacd(++lZ@)L`?Jf*^eA}b) zQMB&Fh<#oeW6FgoZ#PCvpxlH1#?ZI3@DOLAKH*8ZlkUh<=kUk|p){2eht}&(Q=8u| zxR#VYyF9mwfyX6!3vR4C=OBtq(XSNTG-Nc?JcgiyLKtG6vr29s6{-w1Kxt|p8fiJ0 zHd47V>{g(4v=}8nXU}kVbGcMaCEIVGN?ZQ@)QouTX^irZvN(o9qOp1{_8()*b1Y7< znWPEIBWY?~{{^;^-N=l_C**l!4=$Xs&%ikJU&Jb>@x≀;sy=?JtzPac>vu!T^OJ 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 diff --git a/klippy/extras/homing.py b/klippy/extras/homing.py index 634ad81..a9c09cb 100644 --- a/klippy/extras/homing.py +++ b/klippy/extras/homing.py @@ -228,6 +228,10 @@ class PrinterHoming: # Register g-code commands gcode = self.printer.lookup_object('gcode') gcode.register_command('G28', self.cmd_G28) + # 2023/12/14 + gcode_macro = self.printer.load_object(config, 'gcode_macro') + self.vibrate_gcode = gcode_macro.load_template( + config.getsection('bed_mesh'), 'vibrate_gcode', '') def manual_home(self, toolhead, endstops, pos, speed, triggered, check_triggered): hmove = HomingMove(self.printer, endstops, toolhead) @@ -250,8 +254,14 @@ class PrinterHoming: "Probing failed due to printer shutdown") raise if hmove.check_no_movement() is not None: - raise self.printer.command_error( - "Probe triggered prior to movement") + # 2023/12/14 Chengwei + # error to info + gcode = self.printer.lookup_object('gcode') + gcode.respond_info('Probe triggered prior to movement') + ###### + # raise self.printer.command_error( + # "Probe triggered prior to movement") + ###### return epos def cmd_G28(self, gcmd): # Move to origin diff --git a/klippy/extras/homing.pyc b/klippy/extras/homing.pyc deleted file mode 100644 index c253f73cad5c1557909eb0d550706ccba3a7ce35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12680 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 Ee<)C~FaQ7m diff --git a/klippy/extras/homing_override.pyc b/klippy/extras/homing_override.pyc deleted file mode 100644 index 5610cb8659610501acd555478ad475916d7c5b56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2147 zcmbtVO;g)e6unP2HYONIARkRhr#swDX<4;XCX*?dwkz5ZogrbGyb;pFk+CErJ!eeD z?uP!PZu?id=_dRBfu3_^Lo=Oj641N6r~7?%&ZF^ncjXWF=V>hSp9cOu!KyxmNbocz zG4h+pmB{lGoC6+Cj3f;?>Mg;@uR;7!WNF_2@wF?A@RSzLt?I#)_n1?-S zNO;r>ppGe;SPXiARs97qH8RlTQxR*Vj|z-DeX%XGKy`?NO(6GC>s25x1G%^-v~8+- ziFKj}s0JO0 zJI|sjAC+2&27`@e8jnV<3|X#*g~-n5N4OStcGN?Ly9hG#m6xX91a zz9$HykhyzUwW#*6+r^~ZZgyVno)1$tRsX%*brWAk71aQ>E#|2Hd~~VVtxfaPTg%p} zdkksTO~ZUIRrGM2;a0JU|%8zyPWKT1+z?Gf<4^__HE=s|3JZ(z# z`+qBA&26#;R7171C7CXfDxlM>MM}=vGC2^xqOP}S^Yq1@{GzOyfn>@Amj0IeX^T|b zpCTk^)zAT4ycImhjN7FFSPT7?F-kJ!6SFBj2OCP{4tc%*<`G*!g|?n8OmE8+wPC8q z7#K!XE1z-3dSM-gO?;IanME;t<)TD^JpbIvG~#a*l~GnHf5I)C!~1lj@6YAfg}nB{ zRfq1!ND##1Rj9E z6YmK;CYbZWYPAkbsZ>>tb6Z~#XJwHsta@7DM@-H>`rwXoC@*X@0nhkSH^lY=_u(Vj zvp-x(;U|m3u!w8^)dhVpx55XA%sE$&A;ffou4y(}rVB2$%yQ5&9h^3B>S9mb9kU9} zHsp%gGMm9Vv<>iYE2u96HeqcZWzJfFlZUKG#zP##Z5%b@P2IYC&x;{MIN_yQafB#! zHRiR$#cSXIt6~LSQ3`M#^{6{ksm}F||0i!Mde35RuI2g$e1f1A%Mf!|2j@YvhF@ZL Vlkh`EpoH452mDw^!7Q6!{{uLqyy*Y{ diff --git a/klippy/extras/htu21d.pyc b/klippy/extras/htu21d.pyc deleted file mode 100644 index 7f04b7c2a0499f1520bbc5f47a1bac6775837d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7629 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 diff --git a/klippy/extras/idle_timeout.pyc b/klippy/extras/idle_timeout.pyc deleted file mode 100644 index 5b1a1fd01edd22065a5808c275a7fc5f8e6c3023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4659 zcmb_f-EJGl8J$^Dlt@XIVp*1wG%1@xHBqz{^5>>T5ZjgMRA@{GLpg1P0$XZ#Ns%IV ziJf6$B62S3UKHp96zy~LCKm+UrPpC2qc4rmu3quOQyozaVyKk29L4RWp!NTmRVj?#&0kRFg{UR z!ozLaFOi&UH4s$Jl?t^&IzUN4oLEwtm0)JAo=Jlcs3}!u^|CZtnKi zUge5o^hT!&N;SK!%{r`eek>QQpQ2}=23Mp+E4QJZ$>iatG+t7J7q}%Z@T!WdlG);b zI4~YcQ)*g$J5(+(ut>T83oQ8!&~WZzr8E%J15yE zNntoN;XpD(IO;@s<~H%(ZXSh)_djTcM~4raj~*YnG72$CBpI5yah=0U-^7IlePqsA zepZLoL@vvvZkAt1=V6weO~zq%GDsq4ND~>nm8FSW;aipsLDAT;aj}t*|GDGbdD81! zP&Q0HNm3V{c2cY=cZ9*`Lk|Oo>Lso_%sNhL`)DWQfTgkl)WpRyWG;Dk$!I);f4HmY zf4}+Q-s2AnNZvnqbie6pD3*}~Ist9Iq9_}UupD;{ZK6>eegn-H|4&7DnheKcBkMT# zF4_${w!k+;VeUdZwM3yot_xx|8FpQTLuP5W-!rsT1CLMaK63k~*(li`o!Nb%NRs>i z>3;IWya%U6x6T5U@6iERqSY?yQlL0*QBt?yBk-nM?FNb6T9A}h{E!;ePkZKNyojZQ zYA6wNHYfm6XSiCy$GpO()IVVfaWmgzC7w&bL*s)}G>Dtn*YIY!K&2~yXj4ZdGoLva z@8iY8fPF8N#_znO24$&TnkkStIxrhR^?aKZQ5yC?dN{ai zBME&%IvDz-W7j!Xy+duV+-t?mlMKrY#X#Jx@Tvcvgu4`wFNdgk0pr}jQ{cF*cR?;8 z6^Ss%@%MNEe1I}kY6>n1k-VN4O!H_$;laI<`epi>(ptl(1_&ims-f6^0E%;2?X-Wz zVV2bZAS?A$#Jp&L@~RrtM0(3&0ybS$gEc7dG8WS^b)@1R^r3nIVqH|Bo;*pSiR)*n z__U!c7nJ_$j$wDpeP49G+k9zI@jR1vkQ3j|5r321%OvTSPtwpvd4KFgSch4!2S@N! ze-b5Q&MGz+0V7#ONJfx;p@%R-RLo*zFQT3v;(5)Fnnrw3jB7}7Sw=A>4U#8T`im2K z%AxcUUbW3h@=j{|Tzn|7hz|Y;6~c7|r76M1t|MJXzKVQRZ+W6n0p~>d172t<{6H58 z?Y}NjjKB$4_#6}nAV5p%ysXyjJL+7HN@v*B!Azh6FayOLB~YyCT&O|CZkts?H_&DP z=S7>(*#-`^*wEX-N+2%H<#R&^cL-Uo0R8v;v|W%@{h~mI_$JW9k8h-+t4) zh+ouA{7Pz=D^U~GXpZ$j~P+IL;-`5wbj#5g{f8R}c%{_5^5qbv^?7xDAQw+5BLJ1IrGZ$o=JadGx( zDqd=CvYLU=5O1&UZzAVPNJa>hq9M(D_dlMW;iRVXMCfJSVz0NE{FuEMB0fB9g%9!Y z%qK+rUpzCn*yktg!*!iZx?P;XD0`P9li9;)hj=8M@~Bb6vn~|c(v@Hv`8A+ zPv69{(0pdtZN$^p z%q9oO+fR`IO-Qge0Z%?S-IaK$VXVdvVO-Q10!!x!R9CC(2;96y!6>*?(T-MZR4ybI zt#%;dY=I(wQi29>Sfx`;M)Oc%T7p|~fiX1L!sot^x3Af(e&kO-*bcUt)%R|`(XCr? z*~SVQi*8bm#pIQ5H{dCkhSiY>17V$0XKx zd7*O}a>TsEgi|csU2@NJ%`g~7QT{{&E4sQ-UBY+0x>?<+)+&p0G%*rRFghaaZr%cvI#VNEQotZgj*_ W?|R$3#~CemzqVWnD$v8N&VK-Cx4$p| diff --git a/klippy/extras/input_shaper.pyc b/klippy/extras/input_shaper.pyc deleted file mode 100644 index 185ba842eafde241b514882f7521cc1b51babdf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8581 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 Vn=rAYAv3T|bCvm*=P%5!{2wo}jNAYK diff --git a/klippy/extras/led.pyc b/klippy/extras/led.pyc deleted file mode 100644 index 0f09f8eae264a6a0af68bcab1da0545d7a89b12a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9790 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 G@&5pZhE!bu diff --git a/klippy/extras/lm75.pyc b/klippy/extras/lm75.pyc deleted file mode 100644 index aafd11067e133ad8698775bec71f3e5d3337dc3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4434 zcmbtXTT>g!6+S%@0tqlIzF?fqt}0$9%FWoDT5rWkt+N3VQ&|KVv1>1ts;NQKh!N6^ zYNq9dD)Z!2{zLMVr~Hfjm1HY#dEOt8eBWt-*u0q_y65znzMTHfbt>O1HvVq^aoCl~ zUj@%!p_S+868sw(h#Y_jB&o>2$S{zDKul7VgNh_Ga!{3YMv|H&v+{(q=J2RX(!gV0 zk_9{#CAlF_4lrv;4lr?94rV2JN0M8TtjHfl-iUm8Fek}P4i2!`NT+oh5~TmZUpqA* zTkIU=I~Eiv}PCCm$4c%V2 zyScsD`^%sC_wQ#tu<-ZwGu`I1osU22dX5MW|20~9g3dxnLv$!DZfukQ8i5j3BE?s@ za8(K1c}59byQTy#JF5gPJEufLfErf;w1yH35_VeiIIqjgu<{r-Bs5QQ*3i>{#&X7w^P28;X=eWSt#WmzjMfvkOb6)xj7c&=i(;K{(TjHhM zvb+flH-Yl1QYE$GA2)T6Te?S0`nQ$1BX1xWCavlaQrsmH;Pk7qipLvR5=VHmMrcUi zQ!dc$w5X`I+5k=#84N%EC@SnIFI?o(p;a9Y)9h6|n5YiW5F<`(mN!714ARl)>}fa8 zGTU{n?||h9Y0tW7RHT`+1<(+=pywvv5(+|74Ekzu5$I9b# zBHGa)kDbDy+l5~N%e0>EfGh)?~1@)ow2 zmOx0sF5CiGQ5g?M0~--xWlY9YM*&+BiIXJC5Bosd-MPAlePuHj9miQRz)WuMX#%9W zp@A#Vr5zlpYCUu<@I|}w2cXuE^PycIo|NmVTU+?&*}6S-MO>~^vWKHHy;>BdS?Z!_ z4eQE#+{Y}LHM3$C@LK`BU{=jta}UohJ)EtAwt-gu2p#QFeeA+Y17)eh&}geuTjknz zizcHm_>(D2xI`Yo8;_FMS&wG;KDj)sz57CATX-LX>s>bd-ehS>&5CK5E_Y@lsvBq} zl>wK>jUo_w4@3=hGcP)4hIEkdU34ujR*|moz`BMec=gh{@hF0+4dc_FaO?%Go6FdC zDd-|zUkZ9fK1zvz1^K)2U~m|BPg*MSeey|l53h%w8lxBRV&_NLuH>FFH4L7wNYdxM zVRTe+ZLdBW+5f9Z$D~Kczv8V?Vh1k%8D3mSM8VjoB9-Va2tcMWACExR5UigeLf=~L zs7bapO==$1?AOBr{C)k*BgV~C*N&Gwy(WwdeTnTA)|Ni>`PlFTY%h65o$OnZ{~RyR zemsE_@8QEA*?e&SRL$AZv=FTm!0RKM2HHX1>!n#wV^5kLp7lNmy@a#e^X9F`lvp9g1(r~wRJhFcnxIU^s%p2 z3Fkf%qENuB8`58r*D8fSP_w(Au`IAeqS+2G>G)@mo@%K5l~${p1QY&{IZrmyk9X5=9j-{2bI&9Hrh$ra7$t frMHPss2}}~STM^$&D0P&XD7c#P^;F0o4@}rJJe-L diff --git a/klippy/extras/manual_probe.py b/klippy/extras/manual_probe.py index c6e9dc6..eb74ff2 100644 --- a/klippy/extras/manual_probe.py +++ b/klippy/extras/manual_probe.py @@ -24,19 +24,9 @@ class ManualProbe: 'Z_OFFSET_APPLY_ENDSTOP', self.cmd_Z_OFFSET_APPLY_ENDSTOP, desc=self.cmd_Z_OFFSET_APPLY_ENDSTOP_help) - self.reset_status() def manual_probe_finalize(self, kin_pos): if kin_pos is not None: self.gcode.respond_info("Z position is %.3f" % (kin_pos[2],)) - def reset_status(self): - self.status = { - 'is_active': False, - 'z_position': None, - 'z_position_lower': None, - 'z_position_upper': None - } - def get_status(self, eventtime): - return self.status cmd_MANUAL_PROBE_help = "Start manual probe helper script" def cmd_MANUAL_PROBE(self, gcmd): ManualProbeHelper(self.printer, gcmd, self.manual_probe_finalize) @@ -88,7 +78,6 @@ class ManualProbeHelper: self.finalize_callback = finalize_callback self.gcode = self.printer.lookup_object('gcode') self.toolhead = self.printer.lookup_object('toolhead') - self.manual_probe = self.printer.lookup_object('manual_probe') self.speed = gcmd.get_float("SPEED", 5.) self.past_positions = [] self.last_toolhead_pos = self.last_kinematics_pos = None @@ -141,20 +130,11 @@ class ManualProbeHelper: prev_pos = next_pos - 1 if next_pos < len(pp) and pp[next_pos] == z_pos: next_pos += 1 - prev_pos_val = next_pos_val = None prev_str = next_str = "??????" if prev_pos >= 0: - prev_pos_val = pp[prev_pos] - prev_str = "%.3f" % (prev_pos_val,) + prev_str = "%.3f" % (pp[prev_pos],) if next_pos < len(pp): - next_pos_val = pp[next_pos] - next_str = "%.3f" % (next_pos_val,) - self.manual_probe.status = { - 'is_active': True, - 'z_position': z_pos, - 'z_position_lower': prev_pos_val, - 'z_position_upper': next_pos_val, - } + next_str = "%.3f" % (pp[next_pos],) # Find recent positions self.gcode.respond_info("Z position: %s --> %.3f <-- %s" % (prev_str, z_pos, next_str)) @@ -203,7 +183,6 @@ class ManualProbeHelper: self.move_z(next_z_pos) self.report_z_status(next_z_pos != z_pos, z_pos) def finalize(self, success): - self.manual_probe.reset_status() self.gcode.register_command('ACCEPT', None) self.gcode.register_command('NEXT', None) self.gcode.register_command('ABORT', None) diff --git a/klippy/extras/manual_probe.pyc b/klippy/extras/manual_probe.pyc deleted file mode 100644 index cdf90014a535dc35e02fd3d52c15686bd6b844f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9331 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 y(`)v!{KlFRcKT+s32E0)KmTv?d~}ik diff --git a/klippy/extras/motion_report.pyc b/klippy/extras/motion_report.pyc deleted file mode 100644 index a9a2fa0b8888f7104f3b286266a28267d944d883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14316 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 Isvc?m7kp6vY5)KL diff --git a/klippy/extras/neopixel.pyc b/klippy/extras/neopixel.pyc deleted file mode 100644 index 4b75667323ac02f3bdaa11d685c8414b524a9a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5128 zcmbtYL2nz!6@Ig%L{XM3S+Xq2acnxaY9?)>Hb#pkwH(`$VFb>R3C^xji%IrQ9PuRZq{6h^N_3luHTWBYw?mXdmOEpvu5Z{ECl@6DU{ zKDzYJ@zFnof8O+^_$%T27FxD~F2Kh~M`Qy7M>dQECE0K!D9c7kf+5)`OE4@!Rf39q zCGu3{(~ThsMmX8Pf|0fQCwj9~1NV+=^I!?|l zBj=7}AHXB$cmftyp1dZ9aKwlNW73|L1JwaCe&)#TFAesX-MU%N=TwmjPr`@JomV^H z-+4X$yzG=EeK9!oG>O&}Ugm4`V=$p^g11je`vNJvp4aJ_r?^kZyeRpl{}Ef9Ra4H( z+Fz9R8@$e7Qs%L2u!E*RQVrHj%HfzCjPU|)(}ep@A>xY0&s7P|DDMJQ;bpJYrx1vZ zyo|mV#aUjm110#|Q7=CQg1_C2V$VFXub%B*{*{=OvqM2-D*V3OuP=V5@$2{l3)(a`MniqCm;` zc9|0pULtAOiZUc4xH;a6TAttRbT*s*PCkak&3@DgiWT)xBZNx%3_ZUa z2s?{ce~-pl-`Rg+nO;rbD1|M{$4| zBS!^sn{{`$*;B0_-2TLSu>7&Nwz_dw-P}ol1ZWm=*2{_Htgl zpX7W_zEXRPSx$pGI?*osE=G&nNjF^V?qrJ^zF}&=_ZQ*)w3#gqLg1a=em(+z&x_(H z_q<7rvm5BdOq&^J!pxa*Gle#7CY?DmgYj9kDKl*5%~iDPpn>X4nF%un?(^nN$EQX# zh|gjfE&Clh<{NyFfVK1-+FWKSs9Cm(Sstxf@$o%geQ;MFfO~iCE=a45V^T91Bot-`6|Kq0eVy|4een=vp~Oe#>2~o#yxo4- z4^?83>52t+p8C+bf)2)Xf3VFxkA=Fvitm$;HDAMOyO4^qNkOz0ja4iEp4aq!! z*jdEoEQ1&eCAqOXE$bR^G_Qf8jK3GjEjy4GAJj=#$GTTBQZFDG*Qt%GexVBk(r1KO#Gy#_ItCpa zbF+mg?7eX;Woh@B;ImF^hl!a1qxOEnV^^MBKgOLvR^%9=B${joRhhlqg2G5`1f|C8 zR?NEfNF50I5D-*z1xLLKK2D1L%4c|QHtJlg%%;Iod}*`6Zkg$RoSS<)Jc z?jn{Z{S_54{31q%7M3*J)f^LnU~y9rZuVPAKkxPPh{2<5NRl=cRX{1SS9S^G#sIL{ zqFqB=D;QLsFsL)%xNoy#`f<5MU&$AMq0}U8#;wriC(So}4NRh%ymFH6++P0hp8N3Q z#)|jIU47`TKK|5OzW;FfLzfWCW=)==_zs!88y+Q2O;Wb7Gs6}LBF(*K+R9v_WQ9$g zq}7T5GI@3sZzXkl$39<00R)jMSY1Kjp^$^liNjym2}^3Er9Rd^QR{+eYpcNDNv0G9 z+LLK@{-uE$3jj{pIvq(!?S}uApTTfD;T9dvfruP=$=$jEd2l14yt;>dG-U}ilK`REgLYjy5# z*gVXi|1NW(OOjWAn4#658F#%5CSy1iKOnr#)>c3Ekv9kVcNBQc z9>oXfl2>u<5k4LK4mhr#?y*uK*zG0LyC)W??aM0aQqmST^2)@_l(kyY{cOu<8Ka%a zO0UXhuz_32b?&K1q1ei_387L)j+EqX0M_Xw=;sWF?7SGdZjvEEswoX9X<-vBabmFJ8lp8Eribjt2!?+yQ`TAdTDJ&AmfI;i<^9`>Z37d7&!vXng02I0Rm7xx&QzG diff --git a/klippy/extras/output_pin.pyc b/klippy/extras/output_pin.pyc deleted file mode 100644 index a5ca83d7591e237e1eb2ffe8ead5332f57f3d666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4337 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 K74Z{ip8NywIPg3G diff --git a/klippy/extras/pid_calibrate.pyc b/klippy/extras/pid_calibrate.pyc deleted file mode 100644 index ba23d20052833d4e4ad7d9525d0e628d89499d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6137 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 diff --git a/klippy/extras/print_stats.py b/klippy/extras/print_stats.py index 9589aed..d009fa2 100644 --- a/klippy/extras/print_stats.py +++ b/klippy/extras/print_stats.py @@ -1,93 +1,120 @@ -# Virtual SDCard print stat tracking -# -# Copyright (C) 2020 Eric Callahan -# -# This file may be distributed under the terms of the GNU GPLv3 license. - -class PrintStats: - def __init__(self, config): - printer = config.get_printer() - self.gcode_move = printer.load_object(config, 'gcode_move') - self.reactor = printer.get_reactor() - self.reset() - def _update_filament_usage(self, eventtime): - gc_status = self.gcode_move.get_status(eventtime) - cur_epos = gc_status['position'].e - self.filament_used += (cur_epos - self.last_epos) \ - / gc_status['extrude_factor'] - self.last_epos = cur_epos - def set_current_file(self, filename): - self.reset() - self.filename = filename - def note_start(self): - curtime = self.reactor.monotonic() - if self.print_start_time is None: - self.print_start_time = curtime - elif self.last_pause_time is not None: - # Update pause time duration - pause_duration = curtime - self.last_pause_time - self.prev_pause_duration += pause_duration - self.last_pause_time = None - # Reset last e-position - gc_status = self.gcode_move.get_status(curtime) - self.last_epos = gc_status['position'].e - self.state = "printing" - self.error_message = "" - def note_pause(self): - if self.last_pause_time is None: - curtime = self.reactor.monotonic() - self.last_pause_time = curtime - # update filament usage - self._update_filament_usage(curtime) - if self.state != "error": - self.state = "paused" - def note_complete(self): - self._note_finish("complete") - def note_error(self, message): - self._note_finish("error", message) - def note_cancel(self): - self._note_finish("cancelled") - def _note_finish(self, state, error_message = ""): - if self.print_start_time is None: - return - self.state = state - self.error_message = error_message - eventtime = self.reactor.monotonic() - self.total_duration = eventtime - self.print_start_time - if self.filament_used < 0.0000001: - # No positive extusion detected during print - self.init_duration = self.total_duration - \ - self.prev_pause_duration - self.print_start_time = None - def reset(self): - self.filename = self.error_message = "" - self.state = "standby" - self.prev_pause_duration = self.last_epos = 0. - self.filament_used = self.total_duration = 0. - self.print_start_time = self.last_pause_time = None - self.init_duration = 0. - def get_status(self, eventtime): - time_paused = self.prev_pause_duration - if self.print_start_time is not None: - if self.last_pause_time is not None: - # Calculate the total time spent paused during the print - time_paused += eventtime - self.last_pause_time - else: - # Accumulate filament if not paused - self._update_filament_usage(eventtime) - self.total_duration = eventtime - self.print_start_time - if self.filament_used < 0.0000001: - # Track duration prior to extrusion - self.init_duration = self.total_duration - time_paused - print_duration = self.total_duration - self.init_duration - time_paused - return { - 'filename': self.filename, - 'total_duration': self.total_duration, - 'print_duration': print_duration, - 'filament_used': self.filament_used, - 'state': self.state, - 'message': self.error_message - } - -def load_config(config): - return PrintStats(config) +# Virtual SDCard print stat tracking +# +# Copyright (C) 2020 Eric Callahan +# +# This file may be distributed under the terms of the GNU GPLv3 license. + +class PrintStats: + def __init__(self, config): + printer = config.get_printer() + self.gcode_move = printer.load_object(config, 'gcode_move') + self.reactor = printer.get_reactor() + self.reset() + # Register commands + self.gcode = printer.lookup_object('gcode') + self.gcode.register_command( + "SET_PRINT_STATS_INFO", self.cmd_SET_PRINT_STATS_INFO, + desc=self.cmd_SET_PRINT_STATS_INFO_help) + def _update_filament_usage(self, eventtime): + gc_status = self.gcode_move.get_status(eventtime) + cur_epos = gc_status['position'].e + self.filament_used += (cur_epos - self.last_epos) \ + / gc_status['extrude_factor'] + self.last_epos = cur_epos + def set_current_file(self, filename): + self.reset() + self.filename = filename + def note_start(self): + curtime = self.reactor.monotonic() + if self.print_start_time is None: + self.print_start_time = curtime + elif self.last_pause_time is not None: + # Update pause time duration + pause_duration = curtime - self.last_pause_time + self.prev_pause_duration += pause_duration + self.last_pause_time = None + # Reset last e-position + gc_status = self.gcode_move.get_status(curtime) + self.last_epos = gc_status['position'].e + self.state = "printing" + self.error_message = "" + def note_pause(self): + if self.last_pause_time is None: + curtime = self.reactor.monotonic() + self.last_pause_time = curtime + # update filament usage + self._update_filament_usage(curtime) + if self.state != "error": + self.state = "paused" + def note_complete(self): + self._note_finish("complete") + def note_error(self, message): + self._note_finish("error", message) + def note_cancel(self): + self._note_finish("cancelled") + def _note_finish(self, state, error_message = ""): + if self.print_start_time is None: + return + self.state = state + self.error_message = error_message + eventtime = self.reactor.monotonic() + self.total_duration = eventtime - self.print_start_time + if self.filament_used < 0.0000001: + # No positive extusion detected during print + self.init_duration = self.total_duration - \ + self.prev_pause_duration + self.print_start_time = None + cmd_SET_PRINT_STATS_INFO_help = "Pass slicer info like layer act and " \ + "total to klipper" + def cmd_SET_PRINT_STATS_INFO(self, gcmd): + total_layer = gcmd.get_int("TOTAL_LAYER", self.info_total_layer, \ + minval=0) + current_layer = gcmd.get_int("CURRENT_LAYER", self.info_current_layer, \ + minval=0) + if total_layer == 0: + self.info_total_layer = None + self.info_current_layer = None + elif total_layer != self.info_total_layer: + self.info_total_layer = total_layer + self.info_current_layer = 0 + + if self.info_total_layer is not None and \ + current_layer is not None and \ + current_layer != self.info_current_layer: + self.info_current_layer = min(current_layer, self.info_total_layer) + def reset(self): + self.filename = self.error_message = "" + self.state = "standby" + self.prev_pause_duration = self.last_epos = 0. + self.filament_used = self.total_duration = 0. + self.print_start_time = self.last_pause_time = None + self.init_duration = 0. + self.info_total_layer = None + self.info_current_layer = None + def get_status(self, eventtime): + time_paused = self.prev_pause_duration + if self.print_start_time is not None: + if self.last_pause_time is not None: + # Calculate the total time spent paused during the print + time_paused += eventtime - self.last_pause_time + else: + # Accumulate filament if not paused + self._update_filament_usage(eventtime) + self.total_duration = eventtime - self.print_start_time + if self.filament_used < 0.0000001: + # Track duration prior to extrusion + self.init_duration = self.total_duration - time_paused + print_duration = self.total_duration - self.init_duration - time_paused + return { + 'filename': self.filename, + 'total_duration': self.total_duration, + 'print_duration': print_duration, + 'filament_used': self.filament_used, + 'state': self.state, + 'message': self.error_message, + 'info': {'total_layer': self.info_total_layer, + 'current_layer': self.info_current_layer} + } + +def load_config(config): + return PrintStats(config) diff --git a/klippy/extras/print_stats.pyc b/klippy/extras/print_stats.pyc deleted file mode 100644 index 47030e94afefc2027940af518afaa1b172cf1f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3971 zcmb_f+iu)c6g~D_ohD6sC4~YN7co@OAcWcnP=!E9h=&n!1QHRF<&ICLGnugm`%FYp z^OXJs`~*J$zrZVRd<6UeYpvt)q`Z-|srQ_l&)IwJwf8=5{j;_4yZ!6Y$khK@`27@5 zbq6BD|F+2j^URo2W4=2;KV;`1Fj>p&4?0-nHXyz(C%M~qsjHfuLJWU~r^+F$f5+(M zu-@{Zwb~Acv^3S>fjppVvW^-(lXcbTo2;isWHPiP^DHn28z$S(;3bn?Qe)G^`-4p! zIidnIhtKDDs)rCy12dH|C!u*7nrXlhSa^!AF^L~+(OP!fl+zBo0l?TFaL=JE9*>I5 zCiCLh4!Rh0mmtR0B?}^9OZ8_(nkB`fsU5jEIJ>B{>BtqO>tS%!CYGhGtQ$~a*M_L< z?9g%dQIQ``##&zQKftJwsP3V)_qdqbz4=kKcQl(U7Pj=iPxkDOu1u>vy_HmS(7nYI z*T*YKGRY?{N!YF^Ot2Z;2(|+O$K$Dyfcpv!0)hX+>ohPPJ^*)X8k&<9r`uEfs5Nby zU4RR&+`91~Ojg5yQy|j5p>$Xj)x=GT++D^HRb2wpLt!IsdDKWSLQD0Rl_QeYZ9yJR zX6fAKE?HJKa}h>nY2^}&Z3i?UCcYZC$5`ejbF1EXwAzbykCvr>1?}@gdJ``v%SDzt zSg_VB9b0Nz(FPM-4YqZmks}ICyp%2xZM0L7Tepo_v22lo zb$*fmHI7^4Z3p$$b{%7N> z7`m9N$wwG$83?5#c`FKo_}@kz*bcY&8(s}|g2=o5Il6v}rQYqpnSS=ZMM72XBn!OT z{W9cHc`m4(3HJu(sAbA{<++Z*lzc{N4F!|HQT~(pnG$V$8}soi6ofLqMRA?tHHb6e zaEDzy=MRSlBOU)1wyIcIJVsHt!(7RL;L`;16?AH3yvZ_((>~>miuqz@omEsj?w809 zhseg&V~r|pT}*Y7PTQ`Idk+H@wJ_`C(*!Z$Yjmck!n5TreiPGPv3JUm9GB_U&iq$%|~`Nv)LJqxycIvm3hR2sxv-Vs~PX|Wa8Pz({SM!o#&$D znkZg}hVB}eW_?70Yu6VIpWXaxyPWQ78uuWC46X#CTsljd{KZ@szY3vhtLwsQZk?+XcYZT+|3bWt zNw5#`RHP&Wt&Q{(;TORcb|IU9Yskw~1ZdjccuJH_Uk*@(T7JS;1zj_>5Oqe#A~@A= z>WE*6I@!x=iP}%k73su6UOdkuq_t_QZLjN|qa@*6inbB6n5 zysrAJ)V};@F%!eZ!hq@f3q1M?GYWw1@Oo=YVQ@3J9<*>7+X#A+1Fo*G^t=)#i9S#g ze4J#<8M?8eUv{y^$8S))O+hW=yA-Ssias$)mzK2&YMtXdBgUqNMM8IrZV+{%Zq$k{ zNBt<|-{xl2YXZ8-n$*^bEx7BgZof+5+|CD1pDlGM&Y{}+`^= samples_retries: raise gcmd.error("Probe samples exceed samples_tolerance") gcmd.respond_info("Probe samples exceed tolerance. Retrying...") + last_probe_failed = True retries += 1 positions = [] + self.probe_count += 1 # Retract if len(positions) < sample_count: - self._move(probexy + [pos[2] + sample_retract_dist], lift_speed) + if last_probe_failed: + self._move(probexy + [sample_retract_dist * 2], lift_speed) + if self.probe_count != 0 and self.probe_count % self.vibrate == 0: + gcode.respond_info('Probe ' + str(self.probe_count) + " times, start vibrating") + commands = [ + 'G91', + 'G1 Z20 F300', + 'G90', + 'G1 Z10 F300' + ] + gcode._process_commands(commands, False) + self.vibrate_gcode.run_gcode_from_command() + last_probe_failed = False + else: + self._move(probexy + [pos[2] + sample_retract_dist], lift_speed) if must_notify_multi_probe: self.multi_probe_end() # Calculate and return result @@ -274,8 +302,7 @@ class PrinterProbe: # Move the nozzle over the probe point curpos[0] += self.x_offset curpos[1] += self.y_offset - #PwAddNew - self._move(curpos,80.) + self._move(curpos, self.speed) # Start manual probe manual_probe.ManualProbeHelper(self.printer, gcmd, self.probe_calibrate_finalize) @@ -293,6 +320,14 @@ class PrinterProbe: % (self.name, new_calibrate)) configfile.set(self.name, 'z_offset', "%.3f" % (new_calibrate,)) cmd_Z_OFFSET_APPLY_PROBE_help = "Adjust the probe's z_offset" + def cmd_MKS_SHOW_Z_OFFSET(self, gcmd): + offset = self.gcode_move.get_status()['homing_origin'].z + if offset == 0: + self.gcode.respond_info("Nothing to do: Z Offset is 0") + else: + new_calibrate = self.z_offset - offset + self.gcode.respond_info(" %s: z_offset: %.3f\n" % (self.name, new_calibrate)) + cmd_MKS_SHOW_Z_OFFSET_help = "Show the probe's z_offset" # Endstop wrapper that enables probe specific features class ProbeEndstopWrapper: @@ -382,6 +417,11 @@ class ProbePointsHelper: self.lift_speed = self.speed self.probe_offsets = (0., 0., 0.) self.results = [] + # vibrate + self.vibrate = config.getint('vibrate', 9999999) + gcode_macro = self.printer.load_object(config, 'gcode_macro') + self.vibrate_gcode = gcode_macro.load_template( + config, 'vibrate_gcode', '') def minimum_points(self,n): if len(self.probe_points) < n: raise self.printer.config_error( @@ -434,11 +474,23 @@ class ProbePointsHelper: raise gcmd.error("horizontal_move_z can't be less than" " probe's z_offset") probe.multi_probe_begin() + probe.probe_count = 0 while 1: done = self._move_next() if done: break + if self.gcode.break_flag: + break pos = probe.run_probe(gcmd) + probe.probe_count += 1 + gcode = self.printer.lookup_object('gcode') + if self.vibrate and probe.probe_count % self.vibrate == 0: + commands = [ + 'G90', + 'G1 Z'+ str(self.horizontal_move_z) + ' F300' + ] + gcode._process_commands(commands, False) + self.vibrate_gcode.run_gcode_from_command() self.results.append(pos) probe.multi_probe_end() def _manual_probe_start(self): diff --git a/klippy/extras/probe.pyc b/klippy/extras/probe.pyc deleted file mode 100644 index 54ad16b96ab98500e15be547eafbb120c6de7cab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19824 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 diff --git a/klippy/extras/pulse_counter.pyc b/klippy/extras/pulse_counter.pyc deleted file mode 100644 index 324f69877d9e3084fcb6eb8f8e2e4743e352a9ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3459 zcmbtW!EPKy5Ut+XwY`ovHV$!Y;9v;_mI!4b2>}6#A|fGiU?naG8g{&^Tn{S)E; zGYo$ZB*9-t5+gr~T!?&ofO$)j6-lCn$Vk$b7yVVJS2sYueEyA#XY;&D%Y{(``DYmZ zU654d03Qi09Kf1dKZt0Vl6GzUpd32_^Uj%Wcu+pxX(PRXJ;`${No~-L9Oe0k=-a zDcNY2dYsbmO=ULekAYGM$*`i+#W?rXI+%EryJDVY^FrnE%W+XfL7`gVe_b1cll~S+ z)dR_9v&p=0v%`}#uGCB|fmt>4bvaL!anpDn_9@d*mActD3GxNQPZ-L^3p(YBS(dqK zJWVx$%`~3)YJK6@Le|YRY-lci`6nc9($kwqWoxl zyi}&q!}&N%>Xm>UTJ~vnr0x|Z{7g$rp&GyJ1GiqfOmGy70E2PGs2ojwA97LR-vc*z zIh&?~>BJ8v*|;duGWVk)m@4{CR*5OB!jD=x z$h(UDU=_;PC-9)b0`yyQ)RrC8D{z6LXm-1ymH=V}Iy}3GYSc2GL;p5tlebXJ`@qnX zyU9Kx{N%3RCsN(KfW&_S-S6gUdD?`pQH`@%Jkf6gzzNy|4RS&q;ib1ocUMQfpu$*qIT|{It8(WY6`@7s!uPn`L?&G+e^sAg0=q$>qxF#25!8~wsRks>3h1&D9%LZt2Q8Q)<%|3$|(xw-M z_BhMjX@_U`w(oGJ*9`p#4V%+TjhO|Lq**lzXtwt-za{`I)BP4kjnW;n*V-}LQ5Riu z-E>=K$fYwT2`3t4>3H!DQIR}7`rCsE`$mrszLl2 z3?rbSoUBRt`m(p>-`8(4tnQv8aCkTxnY5)ms29)x>rT>w1|p5Ww%leSBFVRxroy#Z zKM`Rjw1l5@YZwl9X(SgdF=z?FCUObAkp1Bpe#$Z}8oUo6(#o}3$d5VI{>u}F(B3D< z3bX?dO<$-@P2c;FT{qGn!NyaJ#p7k8)x$N?#p7kG#plbW*)cJ1h-PTqS0M;-|JU`w zGlYwTm(n$T)2p7BHNmNsIE2yq+6ef20D*l-Lc~}e#(oU4+*!G+f$$Lw@j#yWKx{%QVySp(fwC*@sI~WLXn9W=VLj`u!9U=$#ytQ4 diff --git a/klippy/extras/qdprobe.py b/klippy/extras/qdprobe.py new file mode 100644 index 0000000..c604b33 --- /dev/null +++ b/klippy/extras/qdprobe.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- + +import logging +from . import smart_effector +from . import probe + +# Makerbase Endstop wrapper +class MakerbaseProbeEndstopWrapper: + def __init__(self, config): + self.printer = config.get_printer() + self.position_endstop = config.getfloat('z_offset') + self.stow_on_each_sample = config.getboolean( + 'deactivate_on_each_sample', True) + gcode_macro = self.printer.load_object(config, 'gcode_macro') + self.activate_gcode = gcode_macro.load_template( + config, 'activate_gcode', '') + self.deactivate_gcode = gcode_macro.load_template( + config, 'deactivate_gcode', '') + ppins = self.printer.lookup_object('pins') + pin = config.get('pin') + pin_params = ppins.lookup_pin(pin, can_invert=True, can_pullup=True) + mcu = pin_params['chip'] + self.mcu_endstop = mcu.setup_pin('endstop', pin_params) + self.printer.register_event_handler('klippy:mcu_identify', + self._handle_mcu_identify) + # Wrappers + self.get_mcu = self.mcu_endstop.get_mcu + self.add_stepper = self.mcu_endstop.add_stepper + self.get_steppers = self.mcu_endstop.get_steppers + self.home_start = self.mcu_endstop.home_start + self.home_wait = self.mcu_endstop.home_wait + self.query_endstop = self.mcu_endstop.query_endstop + # multi probes state + self.multi = 'OFF' + def _handle_mcu_identify(self): + kin = self.printer.lookup_object('toolhead').get_kinematics() + for stepper in kin.get_steppers(): + if stepper.is_active_axis('z'): + self.add_stepper(stepper) + def raise_probe(self): + toolhead = self.printer.lookup_object('toolhead') + start_pos = toolhead.get_position() + self.deactivate_gcode.run_gcode_from_command() + if toolhead.get_position()[:3] != start_pos[:3]: + raise self.printer.command_error( + "Toolhead moved during probe activate_gcode script") + def lower_probe(self): + toolhead = self.printer.lookup_object('toolhead') + start_pos = toolhead.get_position() + self.activate_gcode.run_gcode_from_command() + if toolhead.get_position()[:3] != start_pos[:3]: + raise self.printer.command_error( + "Toolhead moved during probe deactivate_gcode script") + def multi_probe_begin(self): + if self.stow_on_each_sample: + return + self.multi = 'FIRST' + def multi_probe_end(self): + if self.stow_on_each_sample: + return + self.raise_probe() + self.multi = 'OFF' + def probe_prepare(self, hmove): + if self.multi == 'OFF' or self.multi == 'FIRST': + self.lower_probe() + if self.multi == 'FIRST': + self.multi = 'ON' + def probe_finish(self, hmove): + if self.multi == 'OFF': + self.raise_probe() + def get_position_endstop(self): + return self.position_endstop + +class MakerBase: + def __init__(self, config): + self.printer = config.get_printer() + self.gcode = self.printer.lookup_object('gcode') + # self.speed = config.getfloat('speed', 5.0, above=0.) + # self.lift_speed = config.getfloat('lift_speed', self.speed, above=0.) + # self.x_offset = config.getfloat('x_offset', 0.) + # self.y_offset = config.getfloat('y_offset', 0.) + # self.z_offset = config.getfloat('z_offset') + self.probe = self.printer.lookup_object('probe') + self.endstop_wrapper = probe.ProbeEndstopWrapper(config) + # self.probe_accel = config.getfloat('probe_accel', 0., minval=0.) + # self.recovery_time = config.getfloat('recovery_time', 0.4, minval=0.) + # Register MakerBase commands + self.gcode.register_command('MKS_PROBE_PIN_1', self.cmd_MKS_PROBE_PIN_1, + desc=self.cmd_MKS_PROBE_PIN_1_help) + self.gcode.register_command('MKS_PROBE_PIN_2', self.cmd_MKS_PROBE_PIN_2, + desc=self.cmd_MKS_PROBE_PIN_2_help) + self.gcode.register_command('QIDI_PROBE_PIN_1', self.cmd_MKS_PROBE_PIN_1, + desc=self.cmd_MKS_PROBE_PIN_1_help) + self.gcode.register_command('QIDI_PROBE_PIN_2', self.cmd_MKS_PROBE_PIN_2, + desc=self.cmd_MKS_PROBE_PIN_2_help) + self.gcode.register_command('MKS_REMOVE', self.cmd_MKS_REMOVE, + desc=self.cmd_MKS_REMOVE_help) + cmd_MKS_PROBE_PIN_2_help = 'ENABLE_PROBE_PIN_2' + def cmd_MKS_PROBE_PIN_2(self, gcmd): + self.probe.mcu_probe.probe_wrapper = self.endstop_wrapper + # Wrappers + self.probe.mcu_probe.get_mcu = self.endstop_wrapper.get_mcu + self.probe.mcu_probe.add_stepper = self.endstop_wrapper.add_stepper + self.probe.mcu_probe.get_steppers = self.endstop_wrapper.get_steppers + self.probe.mcu_probe.home_start = self.endstop_wrapper.home_start + self.probe.mcu_probe.home_wait = self.endstop_wrapper.home_wait + self.probe.mcu_probe.query_endstop = self.endstop_wrapper.query_endstop + self.probe.mcu_probe.multi_probe_begin = self.endstop_wrapper.multi_probe_begin + self.probe.mcu_probe.multi_probe_end = self.endstop_wrapper.multi_probe_end + # gcmd.respond_raw("%s" % (self.cmd_MKS_PROBE_PIN_2_help, )) + cmd_MKS_REMOVE_help = 'MKS_REMOVE' + def cmd_MKS_REMOVE(self, gcmd): + self.printer.remove_object('probe') + self.printer.lookup_object('gcode').remove_command('PROBE') + self.printer.lookup_object('gcode').remove_command('QUERY_PROBE') + self.printer.lookup_object('gcode').remove_command('PROBE_CALIBRATE') + self.printer.lookup_object('gcode').remove_command('PROBE_ACCURACY') + self.printer.lookup_object('gcode').remove_command('Z_OFFSET_APPLY_PROBE') + self.printer.lookup_object('gcode').remove_command('MKS_SHOW_Z_OFFSET') + self.printer.lookup_object('pins').remove_chip('probe') + cmd_MKS_PROBE_PIN_1_help = 'ENABLE_PROBE_PIN_1' + def cmd_MKS_PROBE_PIN_1(self, gcmd): + self.probe.mcu_probe.probe_wrapper = self.probe.mcu_probe.probe_wrapper_2 + # Wrappers + self.probe.mcu_probe.get_mcu = self.probe.mcu_probe.probe_wrapper_2.get_mcu + self.probe.mcu_probe.add_stepper = self.probe.mcu_probe.probe_wrapper_2.add_stepper + self.probe.mcu_probe.get_steppers = self.probe.mcu_probe.probe_wrapper_2.get_steppers + self.probe.mcu_probe.home_start = self.probe.mcu_probe.probe_wrapper_2.home_start + self.probe.mcu_probe.home_wait = self.probe.mcu_probe.probe_wrapper_2.home_wait + self.probe.mcu_probe.query_endstop = self.probe.mcu_probe.probe_wrapper_2.query_endstop + self.probe.mcu_probe.multi_probe_begin = self.probe.mcu_probe.probe_wrapper_2.multi_probe_begin + self.probe.mcu_probe.multi_probe_end = self.probe.mcu_probe.probe_wrapper_2.multi_probe_end + # gcmd.respond_raw("%s" % (self.cmd_MKS_PROBE_PIN_1_help, )) + +def load_config(config): + return MakerBase(config) \ No newline at end of file diff --git a/klippy/extras/quad_gantry_level.pyc b/klippy/extras/quad_gantry_level.pyc deleted file mode 100644 index 2db53d1e10672607535994a718e83c1e1b5fd9c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4964 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 diff --git a/klippy/extras/query_endstops.pyc b/klippy/extras/query_endstops.pyc deleted file mode 100644 index 4d4df63b85817db90500362923f218ec5fb096fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2871 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 diff --git a/klippy/extras/safe_z_home.pyc b/klippy/extras/safe_z_home.pyc deleted file mode 100644 index 40ea8963d70612c179d3b8a64bd396b4d7389528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3090 zcmbtWPj4GV6o0dJ?bxwvCr;9qLSxDSA5a55pdKnzwWxpu5!xWpM1|F6XX32w-F0@y z!HJv;<<4i|gY?`3C%yn*f-k`Dy|Lp|AV4MZyq$UT{=b>ur1VF#{?hz@7}5N%gzqDa zq6?z&E0b3A6VVHz{R6B$UK}XWCEDvR>#ti_m8}Np zmdGO}cx*BqAd~C7tK0O#BlgFv7U?y1#&T_uYtvwj^g5Rwa?J0%#%IM1X9D`0q&uvi zKUQ3;Ez%pLH|YjgKPpP4gL}O#)N|LiL65V<1kVF=^WZoe z+bWjY9EFpS?PDr`(rMWaim@?zzH#r7=!J*bsX>|0J8Q;clLzOvfz`rSkc3lP2P4g_ z2~NXNtVQptsV^Q$m^NPb(vLE2EFaa+?mw`t%gq3Kc^+$1 z^#020hNpRb-o2k$z_4hPV;O)y7UHk^#-9G^K-*xd9HB3ct=NrHOVGIn;e)JR-h?tm-G z&5sf-b9QkY7QxlfP~H?n@yg(eeMkjDehsm!^PT3 zhQ-cs6!W=p-?JSvwRu?VEL&#ojn5>|Ac)i01_2jSfQnR0-BulS6SO6C6RS$& zsv-cu00IFu%XDj4rTjP2*JvgX^bjaDSdj(Lr$T*p3s?ddI3$;qL-MFE7&cgydyY%Q z65;xFYE07hHS*IClqKIRj)hK_(fX^-b4;=zlFS}ASJz(^5 zoo{=LpB;hc1$J`PT~A#HkTYCu2;HQ6U-Kn?lJiIcR|ElAL!~c1UjglbO^aElHrQ*3&Ic^ zPJ!DDUMb$)V7i>1EvK%~A9q?pWc2kXkRb zyiGuD!)tqWwS`$7V@q|wZI?>wBdpd+6;)Bq`M3#wMReM#t=7GU+V-|p)2pew7(GsR zj`C@Ue^&yjOMrIi$p}mTeF#Vt%RFTE2Cs>vz>P21Yem&M5g$$-d^Mh66!PxMT?F#% z^>}Yrs3^PHdtff3d4oWfkGOjyzh%!H0;yeRm>1&F{}QvMvo}p$O8n3j^%E%pd+2=q EC!kY&5dZ)H diff --git a/klippy/extras/shaper_calibrate.pyc b/klippy/extras/shaper_calibrate.pyc deleted file mode 100644 index 807c07a4125c8d0da2624da5f5802b7c99796b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12990 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 b7L>4^!yPU?DEwu{GyC(Chx1^LLgxPf(%5ac diff --git a/klippy/extras/shaper_defs.pyc b/klippy/extras/shaper_defs.pyc deleted file mode 100644 index 7b6ade79650c31bcaf46ea9ca2ef342f8c652de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3691 zcmb_fO>Y}z5T0Epj=z&8cI~EsCzMx~+Jq!r3#WwL9>t-qSxgf_Az zr1B@=%pI;A5PyLqC)8slE=XLs!Sl?!>%^_Yr`Nl)^Um)3vGY7L?>O;WKJ&f*^QU_f z9U0tfxPo6GJe-!aMRrHJCA*e*w(Q#CC1f`tzQ}_a@o+B7Q`l$4OUW1Lk`ynk%A9x^ zRZ`+*RY{ANQzau_UX`qP1yyq5V}yC}(F^AS#oyMjMcL8&YjHil5nS#+3FpzJ>4$E&*Y#cV zjLQxS3#=Z+nf99=@$Zgs!Kpb(K3O4*xH{ z=6v+^@loXIb6ijkLaefN(JELuYhi-V;m&FJ9Il4ji?|SpOU;D3A85eia6c}Z#t=wi z;xiDaodJbI)Estn=yQk6R_{AxyhAEG#KGZbJM@S{zB%OK|MM<~G2Zne_g;Wy%)Mo6 z$+(xx7*YBgH2#v(betu{zh^aw9St-iAbzO=f}b|vd4&)}UN&G9hjS6@2XhJm@)P0$ zKmZkFA&m_nla@hB25A!;bn9efp8pUd^AbcqtwoQXo3NRPl_GQ&RvIAnx6N(U+^$R; zz|JT>E)l>*2*$^2R>3agUa;pOH8YV&BN)F%!vIiXGP2|WHkPpl7jypkP3S%MjbQ*6-eQ-20pFJL@}}A8)zN%^UYNs7(Y?qih6Z$YGA$u-ASu z{ODh2iK0j`rD%+Eo!^Rr@iGPvID=RjlkMz+wWw%DLCKl9O5JB{`l{ZQkRybN+O$Q!N@zsYf)8ijYPycH{_*b@c(?`u^} z$>%ZLB(msU*YAB+RrE)samsvuJY8$h-(S`J@Dpd8JSHJrofd~kN@n!c{liY*9Wm)T z%mD-9gh?5zYQ2g5Gh;2GH{xEX)jA+>jzDZb*%YTHuJLpE9eU zA}CfwA_1+?<8&f1wP=)RB4Sm@vMAkC180z1ps5{H(oAC#3fVNPY|@cpHi3v>6UQT| z@WL3WnBpgs>f5!5FfX%fQf@k7m+ty!vFo3*>h|gjd~#mFN)4&5O`B9##z}PtGrdHr z6(p!-kg8yptV@Z*KJp^NyEX0Mx3s*ENo*c|zEM+ayo#vH zty-0ZtHT1+Vd?6yss7XIb+6ZM`+KNVyMYN~x;!jF+_?F{`n`{K+#Bn6?rv^<=;{^` z5^4V3@WR7>+jr0sha0A|K*93UVP~g8@hZjZ5Ly^-Zr#1N2v9&ML6F4{siq0V}Sqw diff --git a/klippy/extras/smart_effector.py b/klippy/extras/smart_effector.py index 6076a24..a82b0a9 100644 --- a/klippy/extras/smart_effector.py +++ b/klippy/extras/smart_effector.py @@ -54,7 +54,7 @@ class SmartEffectorEndstopWrapper: self.gcode = self.printer.lookup_object('gcode') self.probe_accel = config.getfloat('probe_accel', 0., minval=0.) self.recovery_time = config.getfloat('recovery_time', 0.4, minval=0.) - self.probe_wrapper = probe.ProbeEndstopWrapper(config) + self.probe_wrapper = self.probe_wrapper_2 = probe.ProbeEndstopWrapper(config) # Wrappers self.get_mcu = self.probe_wrapper.get_mcu self.add_stepper = self.probe_wrapper.add_stepper @@ -78,6 +78,16 @@ class SmartEffectorEndstopWrapper: self.gcode.register_command("SET_SMART_EFFECTOR", self.cmd_SET_SMART_EFFECTOR, desc=self.cmd_SET_SMART_EFFECTOR_help) + self.gcode.register_command("CHANGE_PIN", + self.cmd_CHANGE_PIN, + desc=self.cmd_CHANGE_PIN_help) + + self.pin2 = config.get('pin2', None) + self.pin2_enable = 0 + if self.pin2: + self.pin2_enable = 1 + + def probe_prepare(self, hmove): toolhead = self.printer.lookup_object('toolhead') self.probe_wrapper.probe_prepare(hmove) @@ -146,6 +156,9 @@ class SmartEffectorEndstopWrapper: buf = [131, 131] self._send_command(buf) gcmd.respond_info('SmartEffector sensitivity was reset') + cmd_CHANGE_PIN_help = 'print pin' + def cmd_CHANGE_PIN(self, gcmd): + pass def load_config(config): smart_effector = SmartEffectorEndstopWrapper(config) diff --git a/klippy/extras/spi_temperature.py b/klippy/extras/spi_temperature.py index 3972072..1a45a62 100644 --- a/klippy/extras/spi_temperature.py +++ b/klippy/extras/spi_temperature.py @@ -216,7 +216,7 @@ class MAX31855(SensorBase): ###################################################################### MAX6675_SCALE = 3 -MAX6675_MULT = 0.25 * 0.95 +MAX6675_MULT = 0.25 class MAX6675(SensorBase): def __init__(self, config): diff --git a/klippy/extras/spi_temperature.pyc b/klippy/extras/spi_temperature.pyc deleted file mode 100644 index 37beda8c18d2c47b6a5404c864eb9215c5b10564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12707 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

    >6&ME$%Y)RQ$GFj~MX^eGIoY+! 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 X`g0nfRB(&_Y-9PY*4xWhm)HIaUl2}? diff --git a/klippy/extras/temperature_host.pyc b/klippy/extras/temperature_host.pyc deleted file mode 100644 index db582981dc26610f59a095ab89a06a61e2e8269c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3564 zcmb_f-EJF26rS02+&Di?nl?!b1)0)N3qc%&1gJu^5E-aMooF2>VjWU1b1T0PF~DpnqV&_!q`g;rngbq-DeN-#e| zGhd+7I1-=)pAB4+383*xG(Hn^1ex$vr>GAB-yxnCL8oyEd-XhY)JO%pXl4~>J(Xg} zmwYOOk^=n@Gag-=W_(^yq2X|jdO)~Aj4Cs5iYM&6c<%A)8tJb>>;?B(on{px^A<2mg}^BMzr3K!ML+!?wHG1 zI7;F?Ke^k>(p2|s<2s!~C5^CIuxB&JD{1mkl1sy}wsRPmJc+HX zfZ{3N@$DME!TtlaAMEX_gVw`+_4$LZTD*>K%>=tGZ8(loH5-J-Zm ze9ZWuu6awcM}9+%477`8>gdR0IaG+?XrrM&^IMW=H%LDLc?hd+l1HJ{PR#-7#nPVb zy+;jN9o$5B@p}fZVw*S74CzwH9-TprhP!BnPDVHaxdP!*1qXSDakLw>GFYLGQe%UJ z8QhsUOkL0%>`U5Cas?+IhsSSWM??A&Q2c3fJOxb_I|Ut4W^fv&-cpiKy)a3-VQ=K% zlQJzy_qrF?DSN76u;nRlW9w4GgrRJ#VY-GrhmllCl|==u{k`Bo9Xxp0`akV%*Kq)a zd7*QJ9ebIIbYjDI!6>1UMhG1xAcjgs=VWK*&nPI!%Mz+1&vrhI(g6SP#5%c51sQ!? zRFJ|(3!?a*ay#O5h*|;fhombhSVr>ml!&q1>GcEsJwP*!MD38lZXRt^pV;RMDQHenJkl%M-&Z;wd9`J8|*z z1=8=Pdr!1us7SaXbN}c2TsY3BmAmy8<+wU>d=#gHI>I}gm8H9oCyT#OV77L)-|N@A zI?0~Y;rQ`*GJb)d_3ON3+x&-k*v%g6I)dik#W}T%dy~dhpa{5fk=>2fBd$LEBnw^j zA@Bj!2o9sxaZl$q&QdOHNj4bZV$9Jc$0aoKpmytSceABw}@pf9`gak(+--U%p_0`R%Kl-s$&o~#SFg8<>O;Tr_Sy~II0$%)rb^+T=-vxHU z@7rnq^(8;MrWKQ3Cra^ZrN&t_L6uj*>k#Hr6TCsxZR$u-thV4oP&0%~y=>hMu$ACq zK|WfQwT+rztDyO{%^qc4QlO8<`hEulX`0{A&^KtO@@Js=B~35nGj*CI+wAK{8h%$8 z{_nsUTPS)>I`1Q^vZ)X|r>`q|uhC;``ZDeF%kP9yJCnUeQuFBY=?OE%ysS=UAl&Qd zA$E7R^R7#`J;h@{+TiF3NP&zgxCd&6fT@>;F^|1Ib}sP=y>bjqEO}K~^{#&U4}OOa A5&!@I diff --git a/klippy/extras/temperature_mcu.pyc b/klippy/extras/temperature_mcu.pyc deleted file mode 100644 index 4ab0c0ecd208892622d5a4df87e78b484d37c63d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9409 zcmcIqU2Ggz6~42({#pOTj^p)D(mLBVX&h)1dy_WwHyd25AexPP?NDl3rkkDddYt{s z&TMM8v50Vx5E7sYiGK+pKq?Q=2ZYoYROn+L;Q{di?F+Q>oVj!EIp>~x&Uf!7{`bMYU%G#|P*CAt9N$@7{sI~Y|14EfYPm^UYS~gwOfAQh z6IaV|hc+#ee?fo!^|j zuyESz1+REQ{(gJfOW-a@p;@SVmB6hpx#gN$&j*dVdv@;pHZ?zvUjAEXTnqrEl#B$u zEFqv;ObBQf7Xk_=$BE>BZ>-u(l9G(}k-W*BmbY6-%irmRb|1Us1{yXCz3)6hDHkeW~HrH*9ngDUN%gQLHwCS|bSd;%Pl!DY|xH)h%4K z3)My?@M+4$l2@y3+z-oa&v7e(x3V!k1-^(Vx`ACYNg(I}Goq~0UX4rK%@7RU1BW{3N(huJ& zrD{G12GOrntzK-@?COOzw-AUsd^Z3C&J*2fAzefNnJ2ij3;9y%LcVZO%+>P?=k$`j z^vSdH!2r75&;f%v(Fp8NcZ;5n3@L&oiNax(eAx}CIlbox`FddI>qTEAnt@?#IlnGL zE}l8N@YsB7$nbvd-1*#+%$h!vdvxBO`^5a*r)NtV-${D5U^OEFxWM%Gn1X@gOa?W#mGJ53S#E;h4hIya6}YvwT; z;-lnn7-bcxQFMvYbbi3}($ZC@!IOK@t8;9k&$Z@5X~jGbS)9 z!%H;dq%Z}dl^TG&I6BS*4xUsQEH*6M(Q#ySrfH{T1p`Jisc0@Iajd2p`Usk7jv$uF zGL)rDl_aCe9Wr6Vm7KsC>)3vM8wNa%%jd|-8np^EmKSG5jOD6n#*VSq)aYnpBuvK9 zOHZJg=F28(T0F2iS{M3G2;hpT)JybJ{>ByP<7H4uzQ%MsxN{voL8ZyWwCfXcGv3?+yw*AoL!gfseo+5_*r&!$J=Uy;tZ6Gf@YFSVn{& z;V1Helptr6{NfN1;`%J-=8>n5s;2;?;)12nqg&t<7PF=5KwV^BNRF*?S8eDzzeuP5W%dMUje!+{7kQVlV@L}le zNj?QQ;_J6bd%G&qf|S}c*!B)}rHhJxE~YNMYHgb7K<`5;IIMy@3G9O->PojD!ITQ7 zBYI2)M={-TlfJl^b3QSA3sPexnqmk+8rQ@PRE5(m8TE z0bae9nK?Nlnat0ZPejB?c?gbsY9=C`jKPH9I`_;9B=LjtiOfnnooVBrG$2O$%$&@$ z-$5$zo_T-fRNGs{nU;jrQ$8ym@jzQ)OdmPyA4ylL03rEOn(OGH!^iGjNef~VQcHHH zd72e>`Xi(S6LN*I&OoHp+YoaZ+*zoW%fKOe5}gEzuqV(4AP}&o-cNQf8qsG1=#at< z8nHt^5`Bamap(5?lkIPW&TW%H$HK=uIB+!!b|f|Q_zkSgjlE6^y508T%zEYnn3#>7 z@-PiMS*xeoS&hoYO7+=_*<=tS`p!hod^kLuBHWonv^-*ggYY+9kzw4%*gIO!PY1-C5zH#5vV};1H`?5u2+Mjpbv;~;uwVUS6Jag3?_OTMh zamj*v3k25HHK57}0RuDvoP?VvtUy_g<75GxVIjuVX~48B$u5xHDvKkz)HuNnSiP;M z$@Zr}IT!#P`b-DP1Na0_4pc=Xc>tkcP;fuS=ux9MLQ8D|j)F^pUxe`;|>aAO~ytB%xB+7f8DC zuHqGsX)9cdZ->*H{aV%(56YLa1gO<nF>WvWUjqpUt_(2}!lPBD(a*$|I- zOyr?jhq4~ebv)KnkNZIHI-a(YB{)j``=zXO|CRGvi;zvP!Gt)fI*~CO<5u2e0GT~; z0u+I!rVy#G*wL61G7tvm)vMKV>pX0=iak9x$^sAM(d=aziVr~23SpxlOCRz^u}|eKYR3z_jWxyan)gc?OwTjo_0Lvv?X5s z^3)gq`uLl>ZrT#ey4r4PY$Vm=!NHe^crA>I5q)UX;O1#+GBlnVp+$TRF zAb*-IXq4obp0Ej)jD-^bNpc1hL2_$(tE-}+DWJEG7tN+hkS|p-+oT4l&gbe0Ncl3Z zusjW7uB6J+?563T!A*0fXl)E-ytipF{353!!cKw>7oe=eerspY12^pS3~N%(d$Do- zV3^H%vp1GH@3rRh>@(3i2p7b*3K+_GGIXJMPyE;_f;6k;!tLRI;wFSYz4cXGVfc?* z<5Bo;b80JtAgYX0qYx7C60zV+gTQWZ<_CmXk2o{^<~zojuV4RL*2_kB|09>^|L-V$ z8L~SMxF;dy>n-nu$st;4&5%o@iwU`Kzija+4n85+g-c>;a?zA>k9AdZGhmLQ<>ZI( z20xoRX7?z+yRhO5Ua95l`Lf@+C3M-hI1UF>-1T>2g)HptR_Jxe-C=>=Addq|^C1t} z^(q8>7gtmF>E_9pEx*Ruwv-9mE?1pK$+c}ggYG)R<^-GD*xboRj(B8w@%%*23N&}s zn)^@9otkE>3yjm66hVY$xz)_#nyFVa5osasxlshn34e?`32;m` zV_@eDEOztwvDOa=_}h+nc${g{KGoE>^XUj0lx#cv4*)CqLQt)5(1l^F-_2gVXlkoQ zYRg+6GBP9`$}i03Ku)LVZ}JIOKyS X5+7zI_30xV#l^aDM2Amo-wXc%*)wX(F^p!=Q;3i-^-Ufvs2#iZp>*tn2_03@m7JDXl~< zncYz=1LR3Q^xS*@i2^+a=wH!eFYT>|w&4K`;W$h> z_B;uX`~2Me>d$r+FCU$R$uLUoC|PX4L-#{G>CaGvSRCStt^}b~^cUDejvJt85Ie5~ zge@ph6#uYQ#NaMu^iI9>#AK>wObU!=24{Kpzo8#XIBf4D^#|flhH8T8J?v( zXM<=AmAU%)PIzIHPP$_k>bf(2ZdWii2%h9(}atNZ^FR>5we z0x&e|Q?=bBH*1ykU18Q*6>H=aI`ZVw$aHPq%xkkUZx*$=E)yWflj;N@VYRMR&YNz? zbW^5VGFg#HS(>a?rRhy?$n+)$VL+4BIy$K-;Uz#ldxmMWc$suRR*uUf#S1IKL6s=gW%C`g8ffEKm7FZp+acbu_un+9Cdr>H(*(IP&4j#s2whug$e*10 zC3-#(m$gYFr9VL-xedebrhd1*y201mG`G-RHC24` zrfIrVIk!sdsYiYWV%a0}bH8$42hh4G1z5vxa}JKcF@C@x%EAnT;3Nh)afZPK{4^f= zjJW<9iwX-0vV;U}5()km3vSKl)_elV{{f2YDA4Cw@HU>5Qiw-YmCd^8G8PgXd{iX~ z2!to>7XgUdH*yJWcrw+<&5&fIhVYLHG0YSA0yUwEf}1xPu3RvHgFC0qNv%N=(FdB$ zOSRURBEo|!FLhg%#@u`Vee$>8{pr7dzkmG0XTL7}n+R<*HseP6LGVHL~Df#0EtY^(T6Xx`yKYI-16I5c@j=ckI50#!Tf+VDgsv zu~Rt>y-@jI&~S$WBj*-%f4GcFr&_%FgDMnFPnr&yr?5pG>Yf<^ItCJ*_W6dorpgOa zZO|^jH>?G_z+gGd0Sg1vFz#}9BkOKX3lbxaI|;BVtyn-%$1#P85RVHyfShd`Q%vk^ zUMA6~yF}n+huE8$b!AV(bVLxUZJm#($>^)L3W1h7 z4+|Z^q{nB*p;msb<%RzaXZfHj znF2$05NO^N1jAA9e1N9UsrUr%qOrn7$F4MxY?oCXHCGLT^8tSHHl*m6MvN$YL& zB5T#EB)56;$9u}5@#6}|s$*PpRmD~7a=V9I1oA;9WX45f;Hbnfq^6h%yHwqQW`iy< zTx5d|XHWjPr@q~JI{G?vT^OLq(UWfor|%40w9SGqj~u_sg4XrxEN-F5YCr@zF;^&BhU3x5h>|-5LtCT|3iwQ zX#m*{MsesrAREt&bd=bzr<3S8@82hL=Fz&3?^+gYuX+vC0R9CRe~q)4A2IWU2UXxV zd8OHYXx?z=KAj+kXCF^W$&hLRLNFGw&sauxI#6fvKL)A0bIlT)+|sq&pNi@xyzIbN zC8a=OT2!Wgj|I;&cPbr#%9eW7V~C;QF`kr5;27HMa);ExLJ!;%^?>M(9A%*mjRfdK zIs(n`F!JlkW0IY3P+`&zCKtUar_Bh`Pit&6I(60&|U04Niksktv{pjKZGtT}?r~pVy z7GU6X7YP2};A<0v^9OebDP*{7{}GC%vE+M&!-9ML$R#WH)x{V(nr6!@=Bgi-H>%bD E0gjM-FaQ7m diff --git a/klippy/extras/tmc.py b/klippy/extras/tmc.py index f1afddc..816a689 100644 --- a/klippy/extras/tmc.py +++ b/klippy/extras/tmc.py @@ -93,7 +93,7 @@ class TMCErrorCheck: self.mcu_tmc = mcu_tmc self.fields = mcu_tmc.get_fields() self.check_timer = None - self.last_drv_status = self.last_status = None + self.last_drv_status = self.last_drv_fields = None # Setup for GSTAT query reg_name = self.fields.lookup_register("drv_err") if reg_name is not None: @@ -109,9 +109,6 @@ class TMCErrorCheck: # TMC2130 driver quirks self.clear_gstat = False cs_actual_mask = self.fields.all_fields[reg_name]["cs_actual"] - # elif name_parts[0] == 'tmc2240': - # self.clear_gstat = False - # cs_actual_mask = self.fields.all_fields[reg_name]["cs_actual"] elif name_parts[0] == 'tmc2660': # TMC2660 driver quirks self.irun_field = "cs" @@ -125,6 +122,12 @@ class TMCErrorCheck: if f in err_fields: err_mask |= self.fields.all_fields[reg_name][f] self.drv_status_reg_info = [0, reg_name, mask, err_mask, cs_actual_mask] + # Setup for temperature query + self.adc_temp = None + self.adc_temp_reg = self.fields.lookup_register("adc_temp") + if self.adc_temp_reg is not None: + pheaters = self.printer.load_object(config, 'heaters') + # pheaters.register_monitor(config) def _query_register(self, reg_info, try_clear=False): last_value, reg_name, mask, err_mask, cs_actual_mask = reg_info cleared_flags = 0 @@ -158,17 +161,28 @@ class TMCErrorCheck: if count >= 3: fmt = self.fields.pretty_format(reg_name, val) raise self.printer.command_error("TMC '%s' reports error: %s" - % (self.stepper_name, fmt)) + % (self.stepper_name, fmt)) + if "uv_cp" in fmt: + try_clear = True if try_clear and val & err_mask: try_clear = False cleared_flags |= val & err_mask self.mcu_tmc.set_register(reg_name, val & err_mask) return cleared_flags + def _query_temperature(self): + try: + self.adc_temp = self.mcu_tmc.get_register(self.adc_temp_reg) + except self.printer.command_error as e: + # Ignore comms error for temperature + self.adc_temp = None + return def _do_periodic_check(self, eventtime): try: self._query_register(self.drv_status_reg_info) if self.gstat_reg_info is not None: self._query_register(self.gstat_reg_info) + if self.adc_temp_reg is not None: + self._query_temperature() except self.printer.command_error as e: self.printer.invoke_shutdown(str(e)) return self.printer.get_reactor().NEVER @@ -197,14 +211,16 @@ class TMCErrorCheck: return False def get_status(self, eventtime=None): if self.check_timer is None: - return {'drv_status': None} + return {'drv_status': None, 'temperature': None} + temp = None + if self.adc_temp is not None: + temp = round((self.adc_temp - 2038) / 7.7, 2) last_value, reg_name = self.drv_status_reg_info[:2] if last_value != self.last_drv_status: self.last_drv_status = last_value fields = self.fields.get_reg_fields(reg_name, last_value) - fields = {n: v for n, v in fields.items() if v} - self.last_status = {'drv_status': fields} - return self.last_status + self.last_drv_fields = {n: v for n, v in fields.items() if v} + return {'drv_status': self.last_drv_fields, 'temperature': temp} ###################################################################### @@ -248,7 +264,8 @@ class TMCCommandHelper: desc=self.cmd_SET_TMC_CURRENT_help) def _init_registers(self, print_time=None): # Send registers - for reg_name, val in self.fields.registers.items(): + for reg_name in list(self.fields.registers.keys()): + val = self.fields.registers[reg_name] # Val may change during loop self.mcu_tmc.set_register(reg_name, val, print_time) cmd_INIT_TMC_help = "Initialize TMC stepper driver registers" def cmd_INIT_TMC(self, gcmd): @@ -261,7 +278,18 @@ class TMCCommandHelper: reg_name = self.fields.lookup_register(field_name, None) if reg_name is None: raise gcmd.error("Unknown field name '%s'" % (field_name,)) - value = gcmd.get_int('VALUE') + value = gcmd.get_int('VALUE', None) + velocity = gcmd.get_float('VELOCITY', None, minval=0.) + tmc_frequency = self.mcu_tmc.get_tmc_frequency() + if tmc_frequency is None and velocity is not None: + raise gcmd.error("VELOCITY parameter not supported by this driver") + if (value is None) == (velocity is None): + raise gcmd.error("Specify either VALUE or VELOCITY") + if velocity is not None: + step_dist = self.stepper.get_step_dist() + mres = self.fields.get_field("mres") + value = TMCtstepHelper(step_dist, mres, tmc_frequency, + velocity) reg_val = self.fields.set_field(field_name, value) print_time = self.printer.lookup_object('toolhead').get_last_move_time() self.mcu_tmc.set_register(reg_name, reg_val, print_time) @@ -405,17 +433,32 @@ class TMCCommandHelper: cmd_DUMP_TMC_help = "Read and display TMC stepper driver registers" def cmd_DUMP_TMC(self, gcmd): logging.info("DUMP_TMC %s", self.name) - print_time = self.printer.lookup_object('toolhead').get_last_move_time() - gcmd.respond_info("========== Write-only registers ==========") - for reg_name, val in self.fields.registers.items(): - if reg_name not in self.read_registers: + reg_name = gcmd.get('REGISTER', None) + if reg_name is not None: + reg_name = reg_name.upper() + val = self.fields.registers.get(reg_name) + if (val is not None) and (reg_name not in self.read_registers): + # write-only register + gcmd.respond_info(self.fields.pretty_format(reg_name, val)) + elif reg_name in self.read_registers: + # readable register + val = self.mcu_tmc.get_register(reg_name) + if self.read_translate is not None: + reg_name, val = self.read_translate(reg_name, val) + gcmd.respond_info(self.fields.pretty_format(reg_name, val)) + else: + raise gcmd.error("Unknown register name '%s'" % (reg_name)) + else: + gcmd.respond_info("========== Write-only registers ==========") + for reg_name, val in self.fields.registers.items(): + if reg_name not in self.read_registers: + gcmd.respond_info(self.fields.pretty_format(reg_name, val)) + gcmd.respond_info("========== Queried registers ==========") + for reg_name in self.read_registers: + val = self.mcu_tmc.get_register(reg_name) + if self.read_translate is not None: + reg_name, val = self.read_translate(reg_name, val) gcmd.respond_info(self.fields.pretty_format(reg_name, val)) - gcmd.respond_info("========== Queried registers ==========") - for reg_name in self.read_registers: - val = self.mcu_tmc.get_register(reg_name) - if self.read_translate is not None: - reg_name, val = self.read_translate(reg_name, val) - gcmd.respond_info(self.fields.pretty_format(reg_name, val)) ###################################################################### @@ -440,7 +483,7 @@ class TMCVirtualPinHelper: self.diag_pin_field = None self.mcu_endstop = None self.en_pwm = False - self.pwmthrs = 0 + self.pwmthrs = self.coolthrs = 0 # Register virtual_endstop pin name_parts = config.get_name().split() ppins = self.printer.lookup_object("pins") @@ -455,13 +498,6 @@ class TMCVirtualPinHelper: if self.diag_pin is None: raise ppins.error("tmc virtual endstop requires diag pin config") # Setup for sensorless homing - reg = self.fields.lookup_register("en_pwm_mode", None) - if reg is None: - self.en_pwm = not self.fields.get_field("en_spreadcycle") - self.pwmthrs = self.fields.get_field("tpwmthrs") - else: - self.en_pwm = self.fields.get_field("en_pwm_mode") - self.pwmthrs = 0 self.printer.register_event_handler("homing:homing_move_begin", self.handle_homing_move_begin) self.printer.register_event_handler("homing:homing_move_end", @@ -471,21 +507,24 @@ class TMCVirtualPinHelper: def handle_homing_move_begin(self, hmove): if self.mcu_endstop not in hmove.get_mcu_endstops(): return + self.pwmthrs = self.fields.get_field("tpwmthrs") + self.coolthrs = self.fields.get_field("tcoolthrs") reg = self.fields.lookup_register("en_pwm_mode", None) if reg is None: - logging.info("##############################") # On "stallguard4" drivers, "stealthchop" must be enabled + self.en_pwm = not self.fields.get_field("en_spreadcycle") tp_val = self.fields.set_field("tpwmthrs", 0) self.mcu_tmc.set_register("TPWMTHRS", tp_val) val = self.fields.set_field("en_spreadcycle", 0) else: # On earlier drivers, "stealthchop" must be disabled - logging.info("******************************") + self.en_pwm = self.fields.get_field("en_pwm_mode") self.fields.set_field("en_pwm_mode", 0) val = self.fields.set_field(self.diag_pin_field, 1) self.mcu_tmc.set_register("GCONF", val) - tc_val = self.fields.set_field("tcoolthrs", 0xfffff) - self.mcu_tmc.set_register("TCOOLTHRS", tc_val) + if self.coolthrs == 0: + tc_val = self.fields.set_field("tcoolthrs", 0xfffff) + self.mcu_tmc.set_register("TCOOLTHRS", tc_val) def handle_homing_move_end(self, hmove): if self.mcu_endstop not in hmove.get_mcu_endstops(): return @@ -498,7 +537,7 @@ class TMCVirtualPinHelper: self.fields.set_field("en_pwm_mode", self.en_pwm) val = self.fields.set_field(self.diag_pin_field, 0) self.mcu_tmc.set_register("GCONF", val) - tc_val = self.fields.set_field("tcoolthrs", 0) + tc_val = self.fields.set_field("tcoolthrs", self.coolthrs) self.mcu_tmc.set_register("TCOOLTHRS", tc_val) @@ -506,10 +545,35 @@ class TMCVirtualPinHelper: # Config reading helpers ###################################################################### +# Helper to initialize the wave table from config or defaults +def TMCWaveTableHelper(config, mcu_tmc): + set_config_field = mcu_tmc.get_fields().set_config_field + set_config_field(config, "mslut0", 0xAAAAB554) + set_config_field(config, "mslut1", 0x4A9554AA) + set_config_field(config, "mslut2", 0x24492929) + set_config_field(config, "mslut3", 0x10104222) + set_config_field(config, "mslut4", 0xFBFFFFFF) + set_config_field(config, "mslut5", 0xB5BB777D) + set_config_field(config, "mslut6", 0x49295556) + set_config_field(config, "mslut7", 0x00404222) + set_config_field(config, "w0", 2) + set_config_field(config, "w1", 1) + set_config_field(config, "w2", 1) + set_config_field(config, "w3", 1) + set_config_field(config, "x1", 128) + set_config_field(config, "x2", 255) + set_config_field(config, "x3", 255) + set_config_field(config, "start_sin", 0) + set_config_field(config, "start_sin90", 247) + # Helper to configure and query the microstep settings def TMCMicrostepHelper(config, mcu_tmc): fields = mcu_tmc.get_fields() stepper_name = " ".join(config.get_name().split()[1:]) + if not config.has_section(stepper_name): + raise config.error( + "Could not find config section '[%s]' required by tmc driver" + % (stepper_name,)) stepper_config = ms_config = config.getsection(stepper_name) if (stepper_config.get('microsteps', None, note_valid=False) is None and config.get('microsteps', None, note_valid=False) is not None): @@ -520,41 +584,36 @@ def TMCMicrostepHelper(config, mcu_tmc): fields.set_field("mres", mres) fields.set_field("intpol", config.getboolean("interpolate", True)) -# Helper to configure "stealthchop" mode +# Helper for calculating TSTEP based values from velocity +def TMCtstepHelper(step_dist, mres, tmc_freq, velocity): + if velocity > 0.: + step_dist_256 = step_dist / (1 << mres) + threshold = int(tmc_freq * step_dist_256 / velocity + .5) + return max(0, min(0xfffff, threshold)) + else: + return 0xfffff + +# Helper to configure stealthChop-spreadCycle transition velocity def TMCStealthchopHelper(config, mcu_tmc, tmc_freq): fields = mcu_tmc.get_fields() en_pwm_mode = False - velocity = config.getfloat('stealthchop_threshold', 0., minval=0.) - if velocity: + velocity = config.getfloat('stealthchop_threshold', None, minval=0.) + tpwmthrs = 0xfffff + + if velocity is not None: + en_pwm_mode = True + stepper_name = " ".join(config.get_name().split()[1:]) sconfig = config.getsection(stepper_name) rotation_dist, steps_per_rotation = stepper.parse_step_distance(sconfig) step_dist = rotation_dist / steps_per_rotation - step_dist_256 = step_dist / (1 << fields.get_field("mres")) - threshold = int(tmc_freq * step_dist_256 / velocity + .5) - fields.set_field("tpwmthrs", max(0, min(0xfffff, threshold))) - en_pwm_mode = True + mres = fields.get_field("mres") + tpwmthrs = TMCtstepHelper(step_dist, mres, tmc_freq, velocity) + fields.set_field("tpwmthrs", tpwmthrs) + reg = fields.lookup_register("en_pwm_mode", None) if reg is not None: fields.set_field("en_pwm_mode", en_pwm_mode) else: # TMC2208 uses en_spreadCycle fields.set_field("en_spreadcycle", not en_pwm_mode) - -# Helper to configure "stealthchop" mode -def TMC2240StealthchopHelper(config, mcu_tmc, tmc_freq): - fields = mcu_tmc.get_fields() - en_pwm_mode = True - velocity = config.getfloat('stealthchop_threshold', 0., minval=0.) - if velocity: - stepper_name = " ".join(config.get_name().split()[1:]) - sconfig = config.getsection(stepper_name) - rotation_dist, steps_per_rotation = stepper.parse_step_distance(sconfig) - step_dist = rotation_dist / steps_per_rotation - step_dist_256 = step_dist / (1 << fields.get_field("mres")) - threshold = int(tmc_freq * step_dist_256 / velocity + .5) - fields.set_field("tpwmthrs", max(0, min(0xfffff, threshold))) - en_pwm_mode = False - reg = fields.lookup_register("en_pwm_mode", None) - if reg is not None: - fields.set_field("en_pwm_mode", en_pwm_mode) diff --git a/klippy/extras/tmc.pyc b/klippy/extras/tmc.pyc deleted file mode 100644 index 5408953ac753ab5b811e0cee89a7b8b61f1f71ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22508 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 Cg1z -# -# This file may be distributed under the terms of the GNU GPLv3 license. -import math, logging -from . import bus, tmc - -TMC_FREQUENCY=13200000. - -Registers = { - "GCONF": 0x00, "GSTAT": 0x01, "IOIN": 0x04, "IHOLD_IRUN": 0x10, - "TPOWERDOWN": 0x11, "TSTEP": 0x12, "TPWMTHRS": 0x13, "TCOOLTHRS": 0x14, - "THIGH": 0x15, "XDIRECT": 0x2d, "MSLUT0": 0x60, "MSLUTSEL": 0x68, - "MSLUTSTART": 0x69, "MSCNT": 0x6a, "MSCURACT": 0x6b, "CHOPCONF": 0x6c, - "COOLCONF": 0x6d, "DCCTRL": 0x6e, "DRV_STATUS": 0x6f, "PWMCONF": 0x70, - "PWM_SCALE": 0x71, "ENCM_CTRL": 0x72, "LOST_STEPS": 0x73, -} - -ReadRegisters = [ - "GCONF", "GSTAT", "IOIN", "TSTEP", "XDIRECT", "MSCNT", "MSCURACT", - "CHOPCONF", "DRV_STATUS", "PWM_SCALE", "LOST_STEPS", -] - -Fields = {} -Fields["GCONF"] = { - "i_scale_analog": 1<<0, "internal_rsense": 1<<1, "en_pwm_mode": 1<<2, - "enc_commutation": 1<<3, "shaft": 1<<4, "diag0_error": 1<<5, - "diag0_otpw": 1<<6, "diag0_stall": 1<<7, "diag1_stall": 1<<8, - "diag1_index": 1<<9, "diag1_onstate": 1<<10, "diag1_steps_skipped": 1<<11, - "diag0_int_pushpull": 1<<12, "diag1_pushpull": 1<<13, - "small_hysteresis": 1<<14, "stop_enable": 1<<15, "direct_mode": 1<<16, - "test_mode": 1<<17 -} -Fields["GSTAT"] = { "reset": 1<<0, "drv_err": 1<<1, "uv_cp": 1<<2 } -Fields["IOIN"] = { - "step": 1<<0, "dir": 1<<1, "dcen_cfg4": 1<<2, "dcin_cfg5": 1<<3, - "drv_enn_cfg6": 1<<4, "dco": 1<<5, "version": 0xff << 24 -} -Fields["IHOLD_IRUN"] = { - "ihold": 0x1f << 0, "irun": 0x1f << 8, "iholddelay": 0x0f << 16 -} -Fields["TPOWERDOWN"] = { "tpowerdown": 0xff } -Fields["TSTEP"] = { "tstep": 0xfffff } -Fields["TPWMTHRS"] = { "tpwmthrs": 0xfffff } -Fields["TCOOLTHRS"] = { "tcoolthrs": 0xfffff } -Fields["THIGH"] = { "thigh": 0xfffff } -Fields["MSCNT"] = { "mscnt": 0x3ff } -Fields["MSCURACT"] = { "cur_a": 0x1ff, "cur_b": 0x1ff << 16 } -Fields["CHOPCONF"] = { - "toff": 0x0f, "hstrt": 0x07 << 4, "hend": 0x0f << 7, "fd3": 1<<11, - "disfdcc": 1<<12, "rndtf": 1<<13, "chm": 1<<14, "tbl": 0x03 << 15, - "vsense": 1<<17, "vhighfs": 1<<18, "vhighchm": 1<<19, "sync": 0x0f << 20, - "mres": 0x0f << 24, "intpol": 1<<28, "dedge": 1<<29, "diss2g": 1<<30 -} -Fields["COOLCONF"] = { - "semin": 0x0f, "seup": 0x03 << 5, "semax": 0x0f << 8, "sedn": 0x03 << 13, - "seimin": 1<<15, "sgt": 0x7f << 16, "sfilt": 1<<24 -} -Fields["DRV_STATUS"] = { - "sg_result": 0x3ff, "fsactive": 1<<15, "cs_actual": 0x1f << 16, - "stallguard": 1<<24, "ot": 1<<25, "otpw": 1<<26, "s2ga": 1<<27, - "s2gb": 1<<28, "ola": 1<<29, "olb": 1<<30, "stst": 1<<31 -} -Fields["PWMCONF"] = { - "pwm_ampl": 0xff, "pwm_grad": 0xff << 8, "pwm_freq": 0x03 << 16, - "pwm_autoscale": 1<<18, "pwm_symmetric": 1<<19, "freewheel": 0x03 << 20 -} -Fields["PWM_SCALE"] = { "pwm_scale": 0xff } -Fields["LOST_STEPS"] = { "lost_steps": 0xfffff } - -SignedFields = ["cur_a", "cur_b", "sgt"] - -FieldFormatters = { - "i_scale_analog": (lambda v: "1(ExtVREF)" if v else ""), - "shaft": (lambda v: "1(Reverse)" if v else ""), - "reset": (lambda v: "1(Reset)" if v else ""), - "drv_err": (lambda v: "1(ErrorShutdown!)" if v else ""), - "uv_cp": (lambda v: "1(Undervoltage!)" if v else ""), - "version": (lambda v: "%#x" % v), - "mres": (lambda v: "%d(%dusteps)" % (v, 0x100 >> v)), - "otpw": (lambda v: "1(OvertempWarning!)" if v else ""), - "ot": (lambda v: "1(OvertempError!)" if v else ""), - "s2ga": (lambda v: "1(ShortToGND_A!)" if v else ""), - "s2gb": (lambda v: "1(ShortToGND_B!)" if v else ""), - "ola": (lambda v: "1(OpenLoad_A!)" if v else ""), - "olb": (lambda v: "1(OpenLoad_B!)" if v else ""), - "cs_actual": (lambda v: ("%d" % v) if v else "0(Reset?)"), -} - - -###################################################################### -# TMC stepper current config helper -###################################################################### - -MAX_CURRENT = 2.000 - -class TMCCurrentHelper: - def __init__(self, config, mcu_tmc): - self.printer = config.get_printer() - self.name = config.get_name().split()[-1] - self.mcu_tmc = mcu_tmc - self.fields = mcu_tmc.get_fields() - run_current = config.getfloat('run_current', - above=0., maxval=MAX_CURRENT) - hold_current = config.getfloat('hold_current', MAX_CURRENT, - above=0., maxval=MAX_CURRENT) - self.req_hold_current = hold_current - self.sense_resistor = config.getfloat('sense_resistor', 0.110, above=0.) - vsense, irun, ihold = self._calc_current(run_current, hold_current) - self.fields.set_field("vsense", vsense) - self.fields.set_field("ihold", ihold) - self.fields.set_field("irun", irun) - def _calc_current_bits(self, current, vsense): - sense_resistor = self.sense_resistor + 0.020 - vref = 0.32 - if vsense: - vref = 0.18 - cs = int(32. * sense_resistor * current * math.sqrt(2.) / vref + .5) - 1 - return max(0, min(31, cs)) - def _calc_current_from_bits(self, cs, vsense): - sense_resistor = self.sense_resistor + 0.020 - vref = 0.32 - if vsense: - vref = 0.18 - return (cs + 1) * vref / (32. * sense_resistor * math.sqrt(2.)) - def _calc_current(self, run_current, hold_current): - vsense = True - irun = self._calc_current_bits(run_current, True) - if irun == 31: - cur = self._calc_current_from_bits(irun, True) - if cur < run_current: - irun2 = self._calc_current_bits(run_current, False) - cur2 = self._calc_current_from_bits(irun2, False) - if abs(run_current - cur2) < abs(run_current - cur): - vsense = False - irun = irun2 - ihold = self._calc_current_bits(min(hold_current, run_current), vsense) - return vsense, irun, ihold - def get_current(self): - irun = self.fields.get_field("irun") - ihold = self.fields.get_field("ihold") - vsense = self.fields.get_field("vsense") - run_current = self._calc_current_from_bits(irun, vsense) - hold_current = self._calc_current_from_bits(ihold, vsense) - return run_current, hold_current, self.req_hold_current, MAX_CURRENT - def set_current(self, run_current, hold_current, print_time): - self.req_hold_current = hold_current - vsense, irun, ihold = self._calc_current(run_current, hold_current) - if vsense != self.fields.get_field("vsense"): - val = self.fields.set_field("vsense", vsense) - self.mcu_tmc.set_register("CHOPCONF", val, print_time) - self.fields.set_field("ihold", ihold) - val = self.fields.set_field("irun", irun) - self.mcu_tmc.set_register("IHOLD_IRUN", val, print_time) - - -###################################################################### -# TMC2130 SPI -###################################################################### - -class MCU_TMC_SPI_chain: - def __init__(self, config, chain_len=1): - self.printer = config.get_printer() - self.chain_len = chain_len - self.mutex = self.printer.get_reactor().mutex() - share = None - if chain_len > 1: - share = "tmc_spi_cs" - self.spi = bus.MCU_SPI_from_config(config, 3, default_speed=4000000, - share_type=share) - self.taken_chain_positions = [] - def _build_cmd(self, data, chain_pos): - return ([0x00] * ((self.chain_len - chain_pos) * 5) + - data + [0x00] * ((chain_pos - 1) * 5)) - def reg_read(self, reg, chain_pos): - cmd = self._build_cmd([reg, 0x00, 0x00, 0x00, 0x00], chain_pos) - self.spi.spi_send(cmd) - if self.printer.get_start_args().get('debugoutput') is not None: - return 0 - params = self.spi.spi_transfer(cmd) - pr = bytearray(params['response']) - pr = pr[(self.chain_len - chain_pos) * 5 : - (self.chain_len - chain_pos + 1) * 5] - return (pr[1] << 24) | (pr[2] << 16) | (pr[3] << 8) | pr[4] - def reg_write(self, reg, val, chain_pos, print_time=None): - minclock = 0 - if print_time is not None: - minclock = self.spi.get_mcu().print_time_to_clock(print_time) - data = [(reg | 0x80) & 0xff, (val >> 24) & 0xff, (val >> 16) & 0xff, - (val >> 8) & 0xff, val & 0xff] - if self.printer.get_start_args().get('debugoutput') is not None: - self.spi.spi_send(self._build_cmd(data, chain_pos), minclock) - return val - write_cmd = self._build_cmd(data, chain_pos) - dummy_read = self._build_cmd([0x00, 0x00, 0x00, 0x00, 0x00], chain_pos) - params = self.spi.spi_transfer_with_preface(write_cmd, dummy_read, - minclock=minclock) - pr = bytearray(params['response']) - pr = pr[(self.chain_len - chain_pos) * 5 : - (self.chain_len - chain_pos + 1) * 5] - return (pr[1] << 24) | (pr[2] << 16) | (pr[3] << 8) | pr[4] - -# Helper to setup an spi daisy chain bus from settings in a config section -def lookup_tmc_spi_chain(config): - chain_len = config.getint('chain_length', None, minval=2) - if chain_len is None: - # Simple, non daisy chained SPI connection - return MCU_TMC_SPI_chain(config, 1), 1 - - # Shared SPI bus - lookup existing MCU_TMC_SPI_chain - ppins = config.get_printer().lookup_object("pins") - cs_pin_params = ppins.lookup_pin(config.get('cs_pin'), - share_type="tmc_spi_cs") - tmc_spi = cs_pin_params.get('class') - if tmc_spi is None: - tmc_spi = cs_pin_params['class'] = MCU_TMC_SPI_chain(config, chain_len) - if chain_len != tmc_spi.chain_len: - raise config.error("TMC SPI chain must have same length") - chain_pos = config.getint('chain_position', minval=1, maxval=chain_len) - if chain_pos in tmc_spi.taken_chain_positions: - raise config.error("TMC SPI chain can not have duplicate position") - tmc_spi.taken_chain_positions.append(chain_pos) - return tmc_spi, chain_pos - -# Helper code for working with TMC devices via SPI -class MCU_TMC_SPI: - def __init__(self, config, name_to_reg, fields): - self.printer = config.get_printer() - self.name = config.get_name().split()[-1] - self.tmc_spi, self.chain_pos = lookup_tmc_spi_chain(config) - self.mutex = self.tmc_spi.mutex - self.name_to_reg = name_to_reg - self.fields = fields - def get_fields(self): - return self.fields - def get_register(self, reg_name): - reg = self.name_to_reg[reg_name] - with self.mutex: - read = self.tmc_spi.reg_read(reg, self.chain_pos) - return read - def set_register(self, reg_name, val, print_time=None): - reg = self.name_to_reg[reg_name] - with self.mutex: - for retry in range(5): - v = self.tmc_spi.reg_write(reg, val, self.chain_pos, print_time) - if v == val: - return - raise self.printer.command_error( - "Unable to write tmc spi '%s' register %s" % (self.name, reg_name)) - - -###################################################################### -# TMC2130 printer object -###################################################################### - -class TMC2130: - def __init__(self, config): - # Setup mcu communication - self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) - self.mcu_tmc = MCU_TMC_SPI(config, Registers, self.fields) - # Allow virtual pins to be created - tmc.TMCVirtualPinHelper(config, self.mcu_tmc) - # Register commands - current_helper = TMCCurrentHelper(config, self.mcu_tmc) - cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) - cmdhelper.setup_register_dump(ReadRegisters) - self.get_phase_offset = cmdhelper.get_phase_offset - self.get_status = cmdhelper.get_status - # Setup basic register values - tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) - # Allow other registers to be set from the config - set_config_field = self.fields.set_config_field - set_config_field(config, "toff", 4) - set_config_field(config, "hstrt", 0) - set_config_field(config, "hend", 7) - set_config_field(config, "tbl", 1) - set_config_field(config, "iholddelay", 8) - set_config_field(config, "tpowerdown", 0) - set_config_field(config, "pwm_ampl", 128) - set_config_field(config, "pwm_grad", 4) - set_config_field(config, "pwm_freq", 1) - set_config_field(config, "pwm_autoscale", True) - set_config_field(config, "sgt", 0) - -def load_config_prefix(config): - return TMC2130(config) +# TMC2130 configuration +# +# Copyright (C) 2018-2019 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import math, logging +from . import bus, tmc + +TMC_FREQUENCY=13200000. + +Registers = { + "GCONF": 0x00, "GSTAT": 0x01, "IOIN": 0x04, "IHOLD_IRUN": 0x10, + "TPOWERDOWN": 0x11, "TSTEP": 0x12, "TPWMTHRS": 0x13, "TCOOLTHRS": 0x14, + "THIGH": 0x15, "XDIRECT": 0x2d, "MSLUT0": 0x60, "MSLUT1": 0x61, + "MSLUT2": 0x62, "MSLUT3": 0x63, "MSLUT4": 0x64, "MSLUT5": 0x65, + "MSLUT6": 0x66, "MSLUT7": 0x67, "MSLUTSEL": 0x68, "MSLUTSTART": 0x69, + "MSCNT": 0x6a, "MSCURACT": 0x6b, "CHOPCONF": 0x6c, "COOLCONF": 0x6d, + "DCCTRL": 0x6e, "DRV_STATUS": 0x6f, "PWMCONF": 0x70, "PWM_SCALE": 0x71, + "ENCM_CTRL": 0x72, "LOST_STEPS": 0x73, +} + +ReadRegisters = [ + "GCONF", "GSTAT", "IOIN", "TSTEP", "XDIRECT", "MSCNT", "MSCURACT", + "CHOPCONF", "DRV_STATUS", "PWM_SCALE", "LOST_STEPS", +] + +Fields = {} +Fields["GCONF"] = { + "i_scale_analog": 1<<0, "internal_rsense": 1<<1, "en_pwm_mode": 1<<2, + "enc_commutation": 1<<3, "shaft": 1<<4, "diag0_error": 1<<5, + "diag0_otpw": 1<<6, "diag0_stall": 1<<7, "diag1_stall": 1<<8, + "diag1_index": 1<<9, "diag1_onstate": 1<<10, "diag1_steps_skipped": 1<<11, + "diag0_int_pushpull": 1<<12, "diag1_pushpull": 1<<13, + "small_hysteresis": 1<<14, "stop_enable": 1<<15, "direct_mode": 1<<16, + "test_mode": 1<<17 +} +Fields["GSTAT"] = { "reset": 1<<0, "drv_err": 1<<1, "uv_cp": 1<<2 } +Fields["IOIN"] = { + "step": 1<<0, "dir": 1<<1, "dcen_cfg4": 1<<2, "dcin_cfg5": 1<<3, + "drv_enn_cfg6": 1<<4, "dco": 1<<5, "version": 0xff << 24 +} +Fields["IHOLD_IRUN"] = { + "ihold": 0x1f << 0, "irun": 0x1f << 8, "iholddelay": 0x0f << 16 +} +Fields["TPOWERDOWN"] = { "tpowerdown": 0xff } +Fields["TSTEP"] = { "tstep": 0xfffff } +Fields["TPWMTHRS"] = { "tpwmthrs": 0xfffff } +Fields["TCOOLTHRS"] = { "tcoolthrs": 0xfffff } +Fields["THIGH"] = { "thigh": 0xfffff } +Fields["MSLUT0"] = { "mslut0": 0xffffffff } +Fields["MSLUT1"] = { "mslut1": 0xffffffff } +Fields["MSLUT2"] = { "mslut2": 0xffffffff } +Fields["MSLUT3"] = { "mslut3": 0xffffffff } +Fields["MSLUT4"] = { "mslut4": 0xffffffff } +Fields["MSLUT5"] = { "mslut5": 0xffffffff } +Fields["MSLUT6"] = { "mslut6": 0xffffffff } +Fields["MSLUT7"] = { "mslut7": 0xffffffff } +Fields["MSLUTSEL"] = { + "x3": 0xFF << 24, + "x2": 0xFF << 16, + "x1": 0xFF << 8, + "w3": 0x03 << 6, + "w2": 0x03 << 4, + "w1": 0x03 << 2, + "w0": 0x03 << 0, +} +Fields["MSLUTSTART"] = { + "start_sin": 0xFF << 0, + "start_sin90": 0xFF << 16, +} +Fields["MSCNT"] = { "mscnt": 0x3ff } +Fields["MSCURACT"] = { "cur_a": 0x1ff, "cur_b": 0x1ff << 16 } +Fields["CHOPCONF"] = { + "toff": 0x0f, "hstrt": 0x07 << 4, "hend": 0x0f << 7, "fd3": 1<<11, + "disfdcc": 1<<12, "rndtf": 1<<13, "chm": 1<<14, "tbl": 0x03 << 15, + "vsense": 1<<17, "vhighfs": 1<<18, "vhighchm": 1<<19, "sync": 0x0f << 20, + "mres": 0x0f << 24, "intpol": 1<<28, "dedge": 1<<29, "diss2g": 1<<30 +} +Fields["COOLCONF"] = { + "semin": 0x0f, "seup": 0x03 << 5, "semax": 0x0f << 8, "sedn": 0x03 << 13, + "seimin": 1<<15, "sgt": 0x7f << 16, "sfilt": 1<<24 +} +Fields["DRV_STATUS"] = { + "sg_result": 0x3ff, "fsactive": 1<<15, "cs_actual": 0x1f << 16, + "stallguard": 1<<24, "ot": 1<<25, "otpw": 1<<26, "s2ga": 1<<27, + "s2gb": 1<<28, "ola": 1<<29, "olb": 1<<30, "stst": 1<<31 +} +Fields["PWMCONF"] = { + "pwm_ampl": 0xff, "pwm_grad": 0xff << 8, "pwm_freq": 0x03 << 16, + "pwm_autoscale": 1<<18, "pwm_symmetric": 1<<19, "freewheel": 0x03 << 20 +} +Fields["PWM_SCALE"] = { "pwm_scale": 0xff } +Fields["LOST_STEPS"] = { "lost_steps": 0xfffff } + +SignedFields = ["cur_a", "cur_b", "sgt"] + +FieldFormatters = { + "i_scale_analog": (lambda v: "1(ExtVREF)" if v else ""), + "shaft": (lambda v: "1(Reverse)" if v else ""), + "reset": (lambda v: "1(Reset)" if v else ""), + "drv_err": (lambda v: "1(ErrorShutdown!)" if v else ""), + "uv_cp": (lambda v: "1(Undervoltage!)" if v else ""), + "version": (lambda v: "%#x" % v), + "mres": (lambda v: "%d(%dusteps)" % (v, 0x100 >> v)), + "otpw": (lambda v: "1(OvertempWarning!)" if v else ""), + "ot": (lambda v: "1(OvertempError!)" if v else ""), + "s2ga": (lambda v: "1(ShortToGND_A!)" if v else ""), + "s2gb": (lambda v: "1(ShortToGND_B!)" if v else ""), + "ola": (lambda v: "1(OpenLoad_A!)" if v else ""), + "olb": (lambda v: "1(OpenLoad_B!)" if v else ""), + "cs_actual": (lambda v: ("%d" % v) if v else "0(Reset?)"), +} + + +###################################################################### +# TMC stepper current config helper +###################################################################### + +MAX_CURRENT = 2.000 + +class TMCCurrentHelper: + def __init__(self, config, mcu_tmc): + self.printer = config.get_printer() + self.name = config.get_name().split()[-1] + self.mcu_tmc = mcu_tmc + self.fields = mcu_tmc.get_fields() + run_current = config.getfloat('run_current', + above=0., maxval=MAX_CURRENT) + hold_current = config.getfloat('hold_current', MAX_CURRENT, + above=0., maxval=MAX_CURRENT) + self.req_hold_current = hold_current + self.sense_resistor = config.getfloat('sense_resistor', 0.110, above=0.) + vsense, irun, ihold = self._calc_current(run_current, hold_current) + self.fields.set_field("vsense", vsense) + self.fields.set_field("ihold", ihold) + self.fields.set_field("irun", irun) + def _calc_current_bits(self, current, vsense): + sense_resistor = self.sense_resistor + 0.020 + vref = 0.32 + if vsense: + vref = 0.18 + cs = int(32. * sense_resistor * current * math.sqrt(2.) / vref + .5) - 1 + return max(0, min(31, cs)) + def _calc_current_from_bits(self, cs, vsense): + sense_resistor = self.sense_resistor + 0.020 + vref = 0.32 + if vsense: + vref = 0.18 + return (cs + 1) * vref / (32. * sense_resistor * math.sqrt(2.)) + def _calc_current(self, run_current, hold_current): + vsense = True + irun = self._calc_current_bits(run_current, True) + if irun == 31: + cur = self._calc_current_from_bits(irun, True) + if cur < run_current: + irun2 = self._calc_current_bits(run_current, False) + cur2 = self._calc_current_from_bits(irun2, False) + if abs(run_current - cur2) < abs(run_current - cur): + vsense = False + irun = irun2 + ihold = self._calc_current_bits(min(hold_current, run_current), vsense) + return vsense, irun, ihold + def get_current(self): + irun = self.fields.get_field("irun") + ihold = self.fields.get_field("ihold") + vsense = self.fields.get_field("vsense") + run_current = self._calc_current_from_bits(irun, vsense) + hold_current = self._calc_current_from_bits(ihold, vsense) + return run_current, hold_current, self.req_hold_current, MAX_CURRENT + def set_current(self, run_current, hold_current, print_time): + self.req_hold_current = hold_current + vsense, irun, ihold = self._calc_current(run_current, hold_current) + if vsense != self.fields.get_field("vsense"): + val = self.fields.set_field("vsense", vsense) + self.mcu_tmc.set_register("CHOPCONF", val, print_time) + self.fields.set_field("ihold", ihold) + val = self.fields.set_field("irun", irun) + self.mcu_tmc.set_register("IHOLD_IRUN", val, print_time) + + +###################################################################### +# TMC2130 SPI +###################################################################### + +class MCU_TMC_SPI_chain: + def __init__(self, config, chain_len=1): + self.printer = config.get_printer() + self.chain_len = chain_len + self.mutex = self.printer.get_reactor().mutex() + share = None + if chain_len > 1: + share = "tmc_spi_cs" + self.spi = bus.MCU_SPI_from_config(config, 3, default_speed=4000000, + share_type=share) + self.taken_chain_positions = [] + def _build_cmd(self, data, chain_pos): + return ([0x00] * ((self.chain_len - chain_pos) * 5) + + data + [0x00] * ((chain_pos - 1) * 5)) + def reg_read(self, reg, chain_pos): + cmd = self._build_cmd([reg, 0x00, 0x00, 0x00, 0x00], chain_pos) + self.spi.spi_send(cmd) + if self.printer.get_start_args().get('debugoutput') is not None: + return 0 + params = self.spi.spi_transfer(cmd) + pr = bytearray(params['response']) + pr = pr[(self.chain_len - chain_pos) * 5 : + (self.chain_len - chain_pos + 1) * 5] + return (pr[1] << 24) | (pr[2] << 16) | (pr[3] << 8) | pr[4] + def reg_write(self, reg, val, chain_pos, print_time=None): + minclock = 0 + if print_time is not None: + minclock = self.spi.get_mcu().print_time_to_clock(print_time) + data = [(reg | 0x80) & 0xff, (val >> 24) & 0xff, (val >> 16) & 0xff, + (val >> 8) & 0xff, val & 0xff] + if self.printer.get_start_args().get('debugoutput') is not None: + self.spi.spi_send(self._build_cmd(data, chain_pos), minclock) + return val + write_cmd = self._build_cmd(data, chain_pos) + dummy_read = self._build_cmd([0x00, 0x00, 0x00, 0x00, 0x00], chain_pos) + params = self.spi.spi_transfer_with_preface(write_cmd, dummy_read, + minclock=minclock) + pr = bytearray(params['response']) + pr = pr[(self.chain_len - chain_pos) * 5 : + (self.chain_len - chain_pos + 1) * 5] + return (pr[1] << 24) | (pr[2] << 16) | (pr[3] << 8) | pr[4] + +# Helper to setup an spi daisy chain bus from settings in a config section +def lookup_tmc_spi_chain(config): + chain_len = config.getint('chain_length', None, minval=2) + if chain_len is None: + # Simple, non daisy chained SPI connection + return MCU_TMC_SPI_chain(config, 1), 1 + + # Shared SPI bus - lookup existing MCU_TMC_SPI_chain + ppins = config.get_printer().lookup_object("pins") + cs_pin_params = ppins.lookup_pin(config.get('cs_pin'), + share_type="tmc_spi_cs") + tmc_spi = cs_pin_params.get('class') + if tmc_spi is None: + tmc_spi = cs_pin_params['class'] = MCU_TMC_SPI_chain(config, chain_len) + if chain_len != tmc_spi.chain_len: + raise config.error("TMC SPI chain must have same length") + chain_pos = config.getint('chain_position', minval=1, maxval=chain_len) + if chain_pos in tmc_spi.taken_chain_positions: + raise config.error("TMC SPI chain can not have duplicate position") + tmc_spi.taken_chain_positions.append(chain_pos) + return tmc_spi, chain_pos + +# Helper code for working with TMC devices via SPI +class MCU_TMC_SPI: + def __init__(self, config, name_to_reg, fields, tmc_frequency): + self.printer = config.get_printer() + self.name = config.get_name().split()[-1] + self.tmc_spi, self.chain_pos = lookup_tmc_spi_chain(config) + self.mutex = self.tmc_spi.mutex + self.name_to_reg = name_to_reg + self.fields = fields + self.tmc_frequency = tmc_frequency + def get_fields(self): + return self.fields + def get_register(self, reg_name): + reg = self.name_to_reg[reg_name] + with self.mutex: + read = self.tmc_spi.reg_read(reg, self.chain_pos) + return read + def set_register(self, reg_name, val, print_time=None): + reg = self.name_to_reg[reg_name] + with self.mutex: + for retry in range(5): + v = self.tmc_spi.reg_write(reg, val, self.chain_pos, print_time) + if v == val: + return + raise self.printer.command_error( + "Unable to write tmc spi '%s' register %s" % (self.name, reg_name)) + def get_tmc_frequency(self): + return self.tmc_frequency + + +###################################################################### +# TMC2130 printer object +###################################################################### + +class TMC2130: + def __init__(self, config): + # Setup mcu communication + self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) + self.mcu_tmc = MCU_TMC_SPI(config, Registers, self.fields, + TMC_FREQUENCY) + # Allow virtual pins to be created + tmc.TMCVirtualPinHelper(config, self.mcu_tmc) + # Register commands + current_helper = TMCCurrentHelper(config, self.mcu_tmc) + cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) + cmdhelper.setup_register_dump(ReadRegisters) + self.get_phase_offset = cmdhelper.get_phase_offset + self.get_status = cmdhelper.get_status + # Setup basic register values + tmc.TMCWaveTableHelper(config, self.mcu_tmc) + tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) + # Allow other registers to be set from the config + set_config_field = self.fields.set_config_field + # CHOPCONF + set_config_field(config, "toff", 4) + set_config_field(config, "hstrt", 0) + set_config_field(config, "hend", 7) + set_config_field(config, "tbl", 1) + # COOLCONF + set_config_field(config, "sgt", 0) + # IHOLDIRUN + set_config_field(config, "iholddelay", 8) + # PWMCONF + set_config_field(config, "pwm_ampl", 128) + set_config_field(config, "pwm_grad", 4) + set_config_field(config, "pwm_freq", 1) + set_config_field(config, "pwm_autoscale", True) + # TPOWERDOWN + set_config_field(config, "tpowerdown", 0) + +def load_config_prefix(config): + return TMC2130(config) diff --git a/klippy/extras/tmc2130.pyc b/klippy/extras/tmc2130.pyc deleted file mode 100644 index 250e2ec54e3d17b0542179da8841d0620184fc3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14134 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 -# -# This file may be distributed under the terms of the GNU GPLv3 license. -import logging -from . import tmc, tmc_uart, tmc2130 - -TMC_FREQUENCY=12000000. - -Registers = { - "GCONF": 0x00, "GSTAT": 0x01, "IFCNT": 0x02, "SLAVECONF": 0x03, - "OTP_PROG": 0x04, "OTP_READ": 0x05, "IOIN": 0x06, "FACTORY_CONF": 0x07, - "IHOLD_IRUN": 0x10, "TPOWERDOWN": 0x11, "TSTEP": 0x12, "TPWMTHRS": 0x13, - "VACTUAL": 0x22, "MSCNT": 0x6a, "MSCURACT": 0x6b, "CHOPCONF": 0x6c, - "DRV_STATUS": 0x6f, "PWMCONF": 0x70, "PWM_SCALE": 0x71, "PWM_AUTO": 0x72 -} - -ReadRegisters = [ - "GCONF", "GSTAT", "IFCNT", "OTP_READ", "IOIN", "FACTORY_CONF", "TSTEP", - "MSCNT", "MSCURACT", "CHOPCONF", "DRV_STATUS", - "PWMCONF", "PWM_SCALE", "PWM_AUTO" -] - -Fields = {} - -Fields["GCONF"] = { - "i_scale_analog": 0x01, - "internal_rsense": 0x01 << 1, - "en_spreadcycle": 0x01 << 2, - "shaft": 0x01 << 3, - "index_otpw": 0x01 << 4, - "index_step": 0x01 << 5, - "pdn_disable": 0x01 << 6, - "mstep_reg_select": 0x01 << 7, - "multistep_filt": 0x01 << 8, - "test_mode": 0x01 << 9 -} -Fields["GSTAT"] = { - "reset": 0x01, - "drv_err": 0x01 << 1, - "uv_cp": 0x01 << 2 -} -Fields["IFCNT"] = { - "ifcnt": 0xff -} -Fields["SLAVECONF"] = { - "senddelay": 0x0f << 8 -} -Fields["OTP_PROG"] = { - "otpbit": 0x07, - "otpbyte": 0x03 << 4, - "otpmagic": 0xff << 8 -} -Fields["OTP_READ"] = { - "otp_fclktrim": 0x1f, - "otp_ottrim": 0x01 << 5, - "otp_internalrsense": 0x01 << 6, - "otp_tbl": 0x01 << 7, - "otp_pwm_grad": 0x0f << 8, - "otp_pwm_autograd": 0x01 << 12, - "otp_tpwmthrs": 0x07 << 13, - "otp_pwm_ofs": 0x01 << 16, - "otp_pwm_reg": 0x01 << 17, - "otp_pwm_freq": 0x01 << 18, - "otp_iholddelay": 0x03 << 19, - "otp_ihold": 0x03 << 21, - "otp_en_spreadcycle": 0x01 << 23 -} -# IOIN mapping depends on the driver type (SEL_A field) -# TMC222x (SEL_A == 0) -Fields["IOIN@TMC222x"] = { - "pdn_uart": 0x01 << 1, - "spread": 0x01 << 2, - "dir": 0x01 << 3, - "enn": 0x01 << 4, - "step": 0x01 << 5, - "ms1": 0x01 << 6, - "ms2": 0x01 << 7, - "sel_a": 0x01 << 8, - "version": 0xff << 24 -} -# TMC220x (SEL_A == 1) -Fields["IOIN@TMC220x"] = { - "enn": 0x01, - "ms1": 0x01 << 2, - "ms2": 0x01 << 3, - "diag": 0x01 << 4, - "pdn_uart": 0x01 << 6, - "step": 0x01 << 7, - "sel_a": 0x01 << 8, - "dir": 0x01 << 9, - "version": 0xff << 24, -} -Fields["FACTORY_CONF"] = { - "fclktrim": 0x1f, - "ottrim": 0x03 << 8 -} -Fields["IHOLD_IRUN"] = { - "ihold": 0x1f, - "irun": 0x1f << 8, - "iholddelay": 0x0f << 16 -} -Fields["TPOWERDOWN"] = { - "tpowerdown": 0xff -} -Fields["TSTEP"] = { - "tstep": 0xfffff -} -Fields["TPWMTHRS"] = { - "tpwmthrs": 0xfffff -} -Fields["VACTUAL"] = { - "vactual": 0xffffff -} -Fields["MSCNT"] = { - "mscnt": 0x3ff -} -Fields["MSCURACT"] = { - "cur_a": 0x1ff, - "cur_b": 0x1ff << 16 -} -Fields["CHOPCONF"] = { - "toff": 0x0f, - "hstrt": 0x07 << 4, - "hend": 0x0f << 7, - "tbl": 0x03 << 15, - "vsense": 0x01 << 17, - "mres": 0x0f << 24, - "intpol": 0x01 << 28, - "dedge": 0x01 << 29, - "diss2g": 0x01 << 30, - "diss2vs": 0x01 << 31 -} -Fields["DRV_STATUS"] = { - "otpw": 0x01, - "ot": 0x01 << 1, - "s2ga": 0x01 << 2, - "s2gb": 0x01 << 3, - "s2vsa": 0x01 << 4, - "s2vsb": 0x01 << 5, - "ola": 0x01 << 6, - "olb": 0x01 << 7, - "t120": 0x01 << 8, - "t143": 0x01 << 9, - "t150": 0x01 << 10, - "t157": 0x01 << 11, - "cs_actual": 0x1f << 16, - "stealth": 0x01 << 30, - "stst": 0x01 << 31 -} -Fields["PWMCONF"] = { - "pwm_ofs": 0xff, - "pwm_grad": 0xff << 8, - "pwm_freq": 0x03 << 16, - "pwm_autoscale": 0x01 << 18, - "pwm_autograd": 0x01 << 19, - "freewheel": 0x03 << 20, - "pwm_reg": 0xf << 24, - "pwm_lim": 0xf << 28 -} -Fields["PWM_SCALE"] = { - "pwm_scale_sum": 0xff, - "pwm_scale_auto": 0x1ff << 16 -} -Fields["PWM_AUTO"] = { - "pwm_ofs_auto": 0xff, - "pwm_grad_auto": 0xff << 16 -} - -SignedFields = ["cur_a", "cur_b", "pwm_scale_auto"] - -FieldFormatters = dict(tmc2130.FieldFormatters) -FieldFormatters.update({ - "sel_a": (lambda v: "%d(%s)" % (v, ["TMC222x", "TMC220x"][v])), - "s2vsa": (lambda v: "1(LowSideShort_A!)" if v else ""), - "s2vsb": (lambda v: "1(LowSideShort_B!)" if v else ""), -}) - - -###################################################################### -# TMC2208 printer object -###################################################################### - -class TMC2208: - def __init__(self, config): - # Setup mcu communication - self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) - self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields) - self.fields.set_field("pdn_disable", True) - # Register commands - current_helper = tmc2130.TMCCurrentHelper(config, self.mcu_tmc) - cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) - cmdhelper.setup_register_dump(ReadRegisters, self.read_translate) - self.get_phase_offset = cmdhelper.get_phase_offset - self.get_status = cmdhelper.get_status - # Setup basic register values - self.fields.set_field("mstep_reg_select", True) - self.fields.set_field("multistep_filt", True) - tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) - # Allow other registers to be set from the config - set_config_field = self.fields.set_config_field - set_config_field(config, "toff", 3) - set_config_field(config, "hstrt", 5) - set_config_field(config, "hend", 0) - set_config_field(config, "tbl", 2) - set_config_field(config, "iholddelay", 8) - set_config_field(config, "tpowerdown", 20) - set_config_field(config, "pwm_ofs", 36) - set_config_field(config, "pwm_grad", 14) - set_config_field(config, "pwm_freq", 1) - set_config_field(config, "pwm_autoscale", True) - set_config_field(config, "pwm_autograd", True) - set_config_field(config, "pwm_reg", 8) - set_config_field(config, "pwm_lim", 12) - def read_translate(self, reg_name, val): - if reg_name == "IOIN": - drv_type = self.fields.get_field("sel_a", val) - reg_name = "IOIN@TMC220x" if drv_type else "IOIN@TMC222x" - return reg_name, val - -def load_config_prefix(config): - return TMC2208(config) +# TMC2208 UART communication and configuration +# +# Copyright (C) 2018-2019 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import logging +from . import tmc, tmc_uart, tmc2130 + +TMC_FREQUENCY=12000000. + +Registers = { + "GCONF": 0x00, "GSTAT": 0x01, "IFCNT": 0x02, "SLAVECONF": 0x03, + "OTP_PROG": 0x04, "OTP_READ": 0x05, "IOIN": 0x06, "FACTORY_CONF": 0x07, + "IHOLD_IRUN": 0x10, "TPOWERDOWN": 0x11, "TSTEP": 0x12, "TPWMTHRS": 0x13, + "VACTUAL": 0x22, "MSCNT": 0x6a, "MSCURACT": 0x6b, "CHOPCONF": 0x6c, + "DRV_STATUS": 0x6f, "PWMCONF": 0x70, "PWM_SCALE": 0x71, "PWM_AUTO": 0x72 +} + +ReadRegisters = [ + "GCONF", "GSTAT", "IFCNT", "OTP_READ", "IOIN", "FACTORY_CONF", "TSTEP", + "MSCNT", "MSCURACT", "CHOPCONF", "DRV_STATUS", + "PWMCONF", "PWM_SCALE", "PWM_AUTO" +] + +Fields = {} + +Fields["GCONF"] = { + "i_scale_analog": 0x01, + "internal_rsense": 0x01 << 1, + "en_spreadcycle": 0x01 << 2, + "shaft": 0x01 << 3, + "index_otpw": 0x01 << 4, + "index_step": 0x01 << 5, + "pdn_disable": 0x01 << 6, + "mstep_reg_select": 0x01 << 7, + "multistep_filt": 0x01 << 8, + "test_mode": 0x01 << 9 +} +Fields["GSTAT"] = { + "reset": 0x01, + "drv_err": 0x01 << 1, + "uv_cp": 0x01 << 2 +} +Fields["IFCNT"] = { + "ifcnt": 0xff +} +Fields["SLAVECONF"] = { + "senddelay": 0x0f << 8 +} +Fields["OTP_PROG"] = { + "otpbit": 0x07, + "otpbyte": 0x03 << 4, + "otpmagic": 0xff << 8 +} +Fields["OTP_READ"] = { + "otp_fclktrim": 0x1f, + "otp_ottrim": 0x01 << 5, + "otp_internalrsense": 0x01 << 6, + "otp_tbl": 0x01 << 7, + "otp_pwm_grad": 0x0f << 8, + "otp_pwm_autograd": 0x01 << 12, + "otp_tpwmthrs": 0x07 << 13, + "otp_pwm_ofs": 0x01 << 16, + "otp_pwm_reg": 0x01 << 17, + "otp_pwm_freq": 0x01 << 18, + "otp_iholddelay": 0x03 << 19, + "otp_ihold": 0x03 << 21, + "otp_en_spreadcycle": 0x01 << 23 +} +# IOIN mapping depends on the driver type (SEL_A field) +# TMC222x (SEL_A == 0) +Fields["IOIN@TMC222x"] = { + "pdn_uart": 0x01 << 1, + "spread": 0x01 << 2, + "dir": 0x01 << 3, + "enn": 0x01 << 4, + "step": 0x01 << 5, + "ms1": 0x01 << 6, + "ms2": 0x01 << 7, + "sel_a": 0x01 << 8, + "version": 0xff << 24 +} +# TMC220x (SEL_A == 1) +Fields["IOIN@TMC220x"] = { + "enn": 0x01, + "ms1": 0x01 << 2, + "ms2": 0x01 << 3, + "diag": 0x01 << 4, + "pdn_uart": 0x01 << 6, + "step": 0x01 << 7, + "sel_a": 0x01 << 8, + "dir": 0x01 << 9, + "version": 0xff << 24, +} +Fields["FACTORY_CONF"] = { + "fclktrim": 0x1f, + "ottrim": 0x03 << 8 +} +Fields["IHOLD_IRUN"] = { + "ihold": 0x1f, + "irun": 0x1f << 8, + "iholddelay": 0x0f << 16 +} +Fields["TPOWERDOWN"] = { + "tpowerdown": 0xff +} +Fields["TSTEP"] = { + "tstep": 0xfffff +} +Fields["TPWMTHRS"] = { + "tpwmthrs": 0xfffff +} +Fields["VACTUAL"] = { + "vactual": 0xffffff +} +Fields["MSCNT"] = { + "mscnt": 0x3ff +} +Fields["MSCURACT"] = { + "cur_a": 0x1ff, + "cur_b": 0x1ff << 16 +} +Fields["CHOPCONF"] = { + "toff": 0x0f, + "hstrt": 0x07 << 4, + "hend": 0x0f << 7, + "tbl": 0x03 << 15, + "vsense": 0x01 << 17, + "mres": 0x0f << 24, + "intpol": 0x01 << 28, + "dedge": 0x01 << 29, + "diss2g": 0x01 << 30, + "diss2vs": 0x01 << 31 +} +Fields["DRV_STATUS"] = { + "otpw": 0x01, + "ot": 0x01 << 1, + "s2ga": 0x01 << 2, + "s2gb": 0x01 << 3, + "s2vsa": 0x01 << 4, + "s2vsb": 0x01 << 5, + "ola": 0x01 << 6, + "olb": 0x01 << 7, + "t120": 0x01 << 8, + "t143": 0x01 << 9, + "t150": 0x01 << 10, + "t157": 0x01 << 11, + "cs_actual": 0x1f << 16, + "stealth": 0x01 << 30, + "stst": 0x01 << 31 +} +Fields["PWMCONF"] = { + "pwm_ofs": 0xff, + "pwm_grad": 0xff << 8, + "pwm_freq": 0x03 << 16, + "pwm_autoscale": 0x01 << 18, + "pwm_autograd": 0x01 << 19, + "freewheel": 0x03 << 20, + "pwm_reg": 0xf << 24, + "pwm_lim": 0xf << 28 +} +Fields["PWM_SCALE"] = { + "pwm_scale_sum": 0xff, + "pwm_scale_auto": 0x1ff << 16 +} +Fields["PWM_AUTO"] = { + "pwm_ofs_auto": 0xff, + "pwm_grad_auto": 0xff << 16 +} + +SignedFields = ["cur_a", "cur_b", "pwm_scale_auto"] + +FieldFormatters = dict(tmc2130.FieldFormatters) +FieldFormatters.update({ + "sel_a": (lambda v: "%d(%s)" % (v, ["TMC222x", "TMC220x"][v])), + "s2vsa": (lambda v: "1(ShortToSupply_A!)" if v else ""), + "s2vsb": (lambda v: "1(ShortToSupply_B!)" if v else ""), +}) + + +###################################################################### +# TMC2208 printer object +###################################################################### + +class TMC2208: + def __init__(self, config): + # Setup mcu communication + self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) + self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields, 0, + TMC_FREQUENCY) + self.fields.set_field("pdn_disable", True) + # Register commands + current_helper = tmc2130.TMCCurrentHelper(config, self.mcu_tmc) + cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) + cmdhelper.setup_register_dump(ReadRegisters, self.read_translate) + self.get_phase_offset = cmdhelper.get_phase_offset + self.get_status = cmdhelper.get_status + # Setup basic register values + self.fields.set_field("mstep_reg_select", True) + tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) + # Allow other registers to be set from the config + set_config_field = self.fields.set_config_field + # GCONF + set_config_field(config, "multistep_filt", True) + # CHOPCONF + set_config_field(config, "toff", 3) + set_config_field(config, "hstrt", 5) + set_config_field(config, "hend", 0) + set_config_field(config, "tbl", 2) + # IHOLDIRUN + set_config_field(config, "iholddelay", 8) + # PWMCONF + set_config_field(config, "pwm_ofs", 36) + set_config_field(config, "pwm_grad", 14) + set_config_field(config, "pwm_freq", 1) + set_config_field(config, "pwm_autoscale", True) + set_config_field(config, "pwm_autograd", True) + set_config_field(config, "pwm_reg", 8) + set_config_field(config, "pwm_lim", 12) + # TPOWERDOWN + set_config_field(config, "tpowerdown", 20) + def read_translate(self, reg_name, val): + if reg_name == "IOIN": + drv_type = self.fields.get_field("sel_a", val) + reg_name = "IOIN@TMC220x" if drv_type else "IOIN@TMC222x" + return reg_name, val + +def load_config_prefix(config): + return TMC2208(config) diff --git a/klippy/extras/tmc2208.pyc b/klippy/extras/tmc2208.pyc deleted file mode 100644 index 185006e50a1524ba4e59b34238cf95fbed684588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6114 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 JU5k6x{|7bQ2Lu2B diff --git a/klippy/extras/tmc2209.py b/klippy/extras/tmc2209.py index 64bf195..67cd9a0 100644 --- a/klippy/extras/tmc2209.py +++ b/klippy/extras/tmc2209.py @@ -1,96 +1,102 @@ -# TMC2209 configuration -# -# Copyright (C) 2019 Stephan Oelze -# -# This file may be distributed under the terms of the GNU GPLv3 license. -from . import tmc2208, tmc2130, tmc, tmc_uart - -TMC_FREQUENCY=12000000. - -Registers = dict(tmc2208.Registers) -Registers.update({ - "TCOOLTHRS": 0x14, - "COOLCONF": 0x42, - "SGTHRS": 0x40, - "SG_RESULT": 0x41 -}) - -ReadRegisters = tmc2208.ReadRegisters + ["SG_RESULT"] - -Fields = dict(tmc2208.Fields) -Fields["COOLCONF"] = { - "semin": 0x0F << 0, - "seup": 0x03 << 5, - "semax": 0x0F << 8, - "sedn": 0x03 << 13, - "seimin": 0x01 << 15 -} -Fields["IOIN"] = { - "enn": 0x01 << 0, - "ms1": 0x01 << 2, - "ms2": 0x01 << 3, - "diag": 0x01 << 4, - "pdn_uart": 0x01 << 6, - "step": 0x01 << 7, - "spread_en": 0x01 << 8, - "dir": 0x01 << 9, - "version": 0xff << 24 -} -Fields["SGTHRS"] = { - "sgthrs": 0xFF << 0 -} -Fields["SG_RESULT"] = { - "sg_result": 0x3FF << 0 -} -Fields["TCOOLTHRS"] = { - "tcoolthrs": 0xfffff -} - -FieldFormatters = dict(tmc2208.FieldFormatters) - - -###################################################################### -# TMC2209 printer object -###################################################################### - -class TMC2209: - def __init__(self, config): - # Setup mcu communication - self.fields = tmc.FieldHelper(Fields, tmc2208.SignedFields, - FieldFormatters) - self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields, 3) - # Setup fields for UART - self.fields.set_field("pdn_disable", True) - self.fields.set_field("senddelay", 2) # Avoid tx errors on shared uart - # Allow virtual pins to be created - tmc.TMCVirtualPinHelper(config, self.mcu_tmc) - # Register commands - current_helper = tmc2130.TMCCurrentHelper(config, self.mcu_tmc) - cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) - cmdhelper.setup_register_dump(ReadRegisters) - self.get_phase_offset = cmdhelper.get_phase_offset - self.get_status = cmdhelper.get_status - # Setup basic register values - self.fields.set_field("pdn_disable", True) - self.fields.set_field("mstep_reg_select", True) - self.fields.set_field("multistep_filt", True) - tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) - # Allow other registers to be set from the config - set_config_field = self.fields.set_config_field - set_config_field(config, "toff", 3) - set_config_field(config, "hstrt", 5) - set_config_field(config, "hend", 0) - set_config_field(config, "tbl", 2) - set_config_field(config, "iholddelay", 8) - set_config_field(config, "tpowerdown", 20) - set_config_field(config, "pwm_ofs", 36) - set_config_field(config, "pwm_grad", 14) - set_config_field(config, "pwm_freq", 1) - set_config_field(config, "pwm_autoscale", True) - set_config_field(config, "pwm_autograd", True) - set_config_field(config, "pwm_reg", 8) - set_config_field(config, "pwm_lim", 12) - set_config_field(config, "sgthrs", 0) - -def load_config_prefix(config): - return TMC2209(config) +# TMC2209 configuration +# +# Copyright (C) 2019 Stephan Oelze +# +# This file may be distributed under the terms of the GNU GPLv3 license. +from . import tmc2208, tmc2130, tmc, tmc_uart + +TMC_FREQUENCY=12000000. + +Registers = dict(tmc2208.Registers) +Registers.update({ + "TCOOLTHRS": 0x14, + "COOLCONF": 0x42, + "SGTHRS": 0x40, + "SG_RESULT": 0x41 +}) + +ReadRegisters = tmc2208.ReadRegisters + ["SG_RESULT"] + +Fields = dict(tmc2208.Fields) +Fields["COOLCONF"] = { + "semin": 0x0F << 0, + "seup": 0x03 << 5, + "semax": 0x0F << 8, + "sedn": 0x03 << 13, + "seimin": 0x01 << 15 +} +Fields["IOIN"] = { + "enn": 0x01 << 0, + "ms1": 0x01 << 2, + "ms2": 0x01 << 3, + "diag": 0x01 << 4, + "pdn_uart": 0x01 << 6, + "step": 0x01 << 7, + "spread_en": 0x01 << 8, + "dir": 0x01 << 9, + "version": 0xff << 24 +} +Fields["SGTHRS"] = { + "sgthrs": 0xFF << 0 +} +Fields["SG_RESULT"] = { + "sg_result": 0x3FF << 0 +} +Fields["TCOOLTHRS"] = { + "tcoolthrs": 0xfffff +} + +FieldFormatters = dict(tmc2208.FieldFormatters) + + +###################################################################### +# TMC2209 printer object +###################################################################### + +class TMC2209: + def __init__(self, config): + # Setup mcu communication + self.fields = tmc.FieldHelper(Fields, tmc2208.SignedFields, + FieldFormatters) + self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields, 3, + TMC_FREQUENCY) + # Setup fields for UART + self.fields.set_field("pdn_disable", True) + self.fields.set_field("senddelay", 2) # Avoid tx errors on shared uart + # Allow virtual pins to be created + tmc.TMCVirtualPinHelper(config, self.mcu_tmc) + # Register commands + current_helper = tmc2130.TMCCurrentHelper(config, self.mcu_tmc) + cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) + cmdhelper.setup_register_dump(ReadRegisters) + self.get_phase_offset = cmdhelper.get_phase_offset + self.get_status = cmdhelper.get_status + # Setup basic register values + self.fields.set_field("mstep_reg_select", True) + tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) + # Allow other registers to be set from the config + set_config_field = self.fields.set_config_field + # GCONF + set_config_field(config, "multistep_filt", True) + # CHOPCONF + set_config_field(config, "toff", 3) + set_config_field(config, "hstrt", 5) + set_config_field(config, "hend", 0) + set_config_field(config, "tbl", 2) + # IHOLDIRUN + set_config_field(config, "iholddelay", 8) + # PWMCONF + set_config_field(config, "pwm_ofs", 36) + set_config_field(config, "pwm_grad", 14) + set_config_field(config, "pwm_freq", 1) + set_config_field(config, "pwm_autoscale", True) + set_config_field(config, "pwm_autograd", True) + set_config_field(config, "pwm_reg", 8) + set_config_field(config, "pwm_lim", 12) + # TPOWERDOWN + set_config_field(config, "tpowerdown", 20) + # SGTHRS + set_config_field(config, "sgthrs", 0) + +def load_config_prefix(config): + return TMC2209(config) diff --git a/klippy/extras/tmc2209.pyc b/klippy/extras/tmc2209.pyc deleted file mode 100644 index 95ab6f9ed84e085d58039d76ba14057df0cd080d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2830 zcmbVOZF3Yw5boW(+$EQU1d@<|q86ocq7Vog2}WK#2~Y)z?gcIKWm#_K?k4QZxjQFN z1yxqXzvW-?i$B315TEYZa3>ZYFv-qLKRw;k({Gc?-?NQB^q)^URQ^;k-^5q^>=7ya zc@z^R9_@LQ__XI!QlY&HB~{w1lBWPokgk#TXunPe*jFcAr~OGXRZo44R# z97EJ(ciTD-NoQ^C($&}N%U3Shio@-so5Nw0+aA{R_^<9Qv&iTahTYcA&i&oHLEC)C z5btKBwX?ltZZcBC(7q!(_+$}k-wA`;?T7bw%^VwixVvvNtG&gg`s1# zKld-_6*Pc7KLTI+Y{n~C0;`UbJ;B-PF|i=WW5jw<)-uAlx0o{VU+Zu+XE2|-G&4MEn;l{aqbmk^a3}H zF?xxc#TdOTHyE9_@&NxOLl$*?VTWT&y@3|FRzp2XTEqfV95 zarDB~$vn0s1#%uK+6xOE>yAZC0dl?yqibR-32w7)S4y>C*xZh)v=5c8j=AdWlh`&e zn|>CTCrJe}W(V0bovZ9w>Y50b(BN4TX5GSk%zWO-KrfG!VKZJM-CX}7oy&3q;62gM zW<@8$y=KM`mXxC6Ex6O`b&Mv#8-ryGO|IZTIt4pv%jj6$)$u^*Qo%wO0XQ5Ac-8b$ ztsH8(ZOL*g%ah1jv;Yz6vXUYYAF$Aa*255$E&WAYALt%?v@H6hGYrvt%b?g$#Kq6M z`B2*hXn^!jCbz>V{=uZqynu_}a@4?V4f9;5wlw?*%#tKZk8Z% z4A9?3HnDh5+i=j23XO<#Atr%ju&|LG7Ix8{+qODF_v-YsL3uXEgzvf)-2U<5?d{eh zF%cTVPL_5}&)u%c&8lqdaaWw?*phJ_cbl;9;=o+d%l*E^cl?n^4 zgCVJ;OveUmO!2Ee9H_|Z;2Miv;9->q_GEAe!^ji=CnAzZn=ZuH`Lu$geAcfalcv17 c{7zTqK~+ks?j7?-Yq!H;jLTP - -import math, logging -from . import bus, tmc, tmc_uart, tmc2130 - -TMC_FREQUENCY=10000000. - -Registers = { - "GCONF": 0x00, - "GSTAT": 0x01, - "IFCNT": 0x02, - "SLAVECONF": 0x03, - "IOIN": 0x04, - "DRV_CONF": 0x0A, - "GLOBALSCALER": 0x0B, - "IHOLD_IRUN": 0x10, - "TPOWERDOWN": 0x11, - "TSTEP": 0x12, - "TPWMTHRS": 0x13, - "TCOOLTHRS": 0x14, - "THIGH": 0x15, - "DIRECT_MODE": 0x2d, - "ENCMODE": 0x38, - "X_ENC": 0x39, - "ENC_CONST": 0x3a, - "ENC_STATUS": 0x3b, - "ENC_LATCH": 0x3c, - "ADC_VSUPPLY_AIN": 0x50, - "ADC_TEMP": 0x51, - "OTW_OV_VTH": 0x52, - "MSLUT_0": 0x60, - "MSLUT_1": 0x61, - "MSLUT_2": 0x62, - "MSLUT_3": 0x63, - "MSLUT_4": 0x64, - "MSLUT_5": 0x65, - "MSLUT_6": 0x66, - "MSLUT_7": 0x67, - "MSLUTSEL": 0x68, - "MSLUTSTART": 0x69, - "MSCNT": 0x6a, - "MSCURACT": 0x6b, - "CHOPCONF": 0x6c, - "COOLCONF": 0x6d, - "DRV_STATUS": 0x6f, - "PWMCONF": 0x70, - "PWM_SCALE": 0x71, - "PWM_AUTO": 0x72, - # "SG4_THRS": 0x74, - "SGTHRS": 0x74, - "SG4_RESULT": 0x75, - "SG4_IND": 0x76 -} - -ReadRegisters = [ - "GCONF", "CHOPCONF", "GSTAT", "DRV_STATUS", "IOIN", - "MSCNT", "MSCURACT", "PWM_SCALE", "PWM_AUTO", "IFCNT" -] - -Fields = {} - -Fields["GCONF"] = { - "fast_standstill": 0x01 << 1, - "en_pwm_mode": 0x01 << 2, - "multistep_filt": 0x01 << 3, - "shaft": 0x01 << 4, - "diag0_error": 0x01 << 5, - "diag0_otpw": 0x01 << 6, - "diag0_stall": 0x01 << 7, - "diag1_stall": 0x01 << 8, - "diag1_index": 0x01 << 9, - "diag1_onstate": 0x01 << 10, - "diag0_pushpull": 0x01 << 12, - "diag1_pushpull": 0x01 << 13, - "small_hysteresis": 0x01 << 14, - "stop_enable": 0x01 << 15, - "direct_mode": 0x01 << 16, -} - -Fields["GSTAT"] = { - "reset": 0x01 << 0, - "drv_err": 0x01 << 1, - "uv_cp": 0x01 << 2, - "register_reset": 0x01 << 3, - "vm_uvlo": 0x01 << 4 -} - -Fields["IOIN"] = { - "step": 0x01 << 0, - "dir": 0x01 << 1, - "encb": 0x01 << 2, - "enca": 0x01 << 3, - "drv_enn": 0x01 << 4, - "encn": 0x01 << 5, - "uart_en": 0x01 << 6, - "reserved": 0x01 << 7, - "comp_a": 0x01 << 8, - "comp_b": 0x01 << 9, - "comp_a1_a2": 0x01 << 10, - "comp_b1_b2": 0x01 << 11, - "version": 0xff << 24 -} - -Fields["GLOBALSCALER"] = { - "globalscaler": 0xff << 0 -} - -Fields["IHOLD_IRUN"] = { - "ihold": 0x1f << 0, - "irun": 0x1f << 8, - "iholddelay": 0x0f << 16, - "irundelay": 0x0f << 24 -} - -Fields["TPOWERDOWN"] = { - "tpowerdown": 0xff -} - -Fields["TSTEP"] = { - "tstep": 0xfffff << 0 -} - -Fields["TPWMTHRS"] = { - "tpwmthrs": 0xfffff << 0 -} - -Fields["TCOOLTHRS"] = { - "tcoolthrs": 0xfffff << 0 -} - -Fields["THIGH"] = { - "thigh": 0xfffff << 0 -} - -Fields["DIRECT_MODE"] = { - "direct_coil_a": 0x1ff << 0, - "direct_coil_b": 0x1ff << 16 -} - -Fields["ENCMODE"] = { - "pol_a": 0x01 << 0, - "pol_b": 0x01 << 1, - "pol_n": 0x01 << 2, - "ignore_ab": 0x01 << 3, - "clr_cont": 0x01 << 4, - "clr_once": 0x01 << 5, - "pos_neg_edge": 0x03 << 6, - "clr_enc_x": 0x01 << 8, - "enc_sel_decimal": 0x01 << 10 -} - -Fields["X_ENC"] = { - "x_enc": 0xffffffff << 0 -} - -Fields["ENC_CONST"] = { - "enc_const": 0xffffffff << 0 -} - -Fields["ENC_STATUS"] = { - "n_event": 0x01 << 0 -} - -Fields["ENC_LATCH"] = { - "enc_latch": 0xffffffff << 0 -} - -Fields["MSLUT_0"] = { - "mslut_0": 0xffffffff << 0 -} - -Fields["MSLUT_1"] = { - "mslut_1": 0xffffffff << 0 -} - -Fields["MSLUT_2"] = { - "mslut_2": 0xffffffff << 0 -} - -Fields["MSLUT_3"] = { - "mslut_3": 0xffffffff << 0 -} - -Fields["MSLUT_4"] = { - "mslut_4": 0xffffffff << 0 -} - -Fields["MSLUT_5"] = { - "mslut_5": 0xffffffff << 0 -} - -Fields["MSLUT_6"] = { - "mslut_6": 0xffffffff << 0 -} - -Fields["MSLUT_7"] = { - "mslut_7": 0xffffffff << 0 -} - -Fields["MSLUTSEL"] = { - "w0": 0x03 << 0, - "w1": 0x03 << 2, - "w2": 0x03 << 4, - "w3": 0x03 << 6, - "x1": 0xff << 8, - "x2": 0xff << 16, - "x3": 0xff << 24 -} - -Fields["MSLUTSTART"] = { - "start_sin": 0xff << 0, - "start_sin90": 0xff << 16, - "offset_sin90": 0xff << 24 -} - -Fields["MSCNT"] = { - "mscnt": 0x3ff << 0 -} - -Fields["MSCURACT"] = { - "cur_b": 0x1ff << 0, - "cur_a": 0x1ff << 16 -} - -Fields["CHOPCONF"] = { - "toff": 0x0F << 0, - "hstrt": 0x07 << 4, - "hend": 0x0F << 7, - "fd3": 0x01 << 11, - "disfdcc": 0x01 << 12, - "chm": 0x01 << 14, - "tbl": 0x03 << 15, - "vhighfs": 0x01 << 18, - "vhighchm": 0x01 << 19, - "tpfd": 0x0F << 20, # midrange resonances - "mres": 0x0F << 24, - "intpol": 0x01 << 28, - "dedge": 0x01 << 29, - "diss2g": 0x01 << 30, - "diss2vs": 0x01 << 31 -} - -Fields["COOLCONF"] = { - "semin": 0x0f << 0, - "seup": 0x03 << 5, - "semax": 0x0f << 8, - "sedn": 0x03 << 13, - "seimin": 0x01 << 15, - "sgt": 0x7f << 16, - "sfilt": 0x01 << 24 -} - -Fields["DRV_STATUS"] = { - "sg_result": 0x3FF << 0, - "s2vsa": 0x01 << 12, - "s2vsb": 0x01 << 13, - "stealth": 0x01 << 14, - "fsactive": 0x01 << 15, - "csactual": 0xFF << 16, - "stallguard": 0x01 << 24, - "ot": 0x01 << 25, - "otpw": 0x01 << 26, - "s2ga": 0x01 << 27, - "s2gb": 0x01 << 28, - "ola": 0x01 << 29, - "olb": 0x01 << 30, - "stst": 0x01 << 31 -} - -Fields["PWMCONF"] = { - "pwm_ofs": 0xFF << 0, - "pwm_grad": 0xFF << 8, - "pwm_freq": 0x03 << 16, - "pwm_autoscale": 0x01 << 18, - "pwm_autograd": 0x01 << 19, - "freewheel": 0x03 << 20, - "pwm_meas_sd_enable": 0x01 << 22, - "pwm_dis_reg_stst": 0x01 << 23, - "pwm_reg": 0x0F << 24, - "pwm_lim": 0x0F << 28 -} - -Fields["PWM_SCALE"] = { - "pwm_scale_sum": 0xff << 0, - "pwm_scale_auto": 0x1ff << 16 -} - -Fields["IFCNT"] = { - "ifcnt": 0xff -} - -''' -Fields["SG4_THRS"] = { - "sg4_thrs": 0xff, - "sg4_filt_en": 0x01 << 8, - "sg4_angle_offset": 0x01 << 9 -} -''' - -Fields["SGTHRS"] = { - "sgthrs": 0xff, - "sg4_filt_en": 0x01 << 8, - "sg4_angle_offset": 0x01 << 9 -} - -Fields["SG4_RESULT"] = { - "sg4_result": 0x3ff << 9 -} - -Fields["DRV_CONF"] = { - "current_range": 0x03 << 0, - "slope_control": 0x03 << 4, -} - -Fields["OTW_OV_VTH"] = { - "overtempperwarning_vth": 0x1ff << 16 -} - -SignedFields = ["cur_a", "cur_b", "sgt", - "pwm_scale_auto"] -FieldFormatters = dict(tmc2130.FieldFormatters) - -###################################################################### -# TMC stepper current config helper -###################################################################### - -MAX_CURRENT = 2.000 - -class TMC2240CurrentHelper: - def __init__(self, config, mcu_tmc): - self.printer = config.get_printer() - self.name = config.get_name().split()[-1] - self.mcu_tmc = mcu_tmc - self.fields = mcu_tmc.get_fields() - run_current = config.getfloat('run_current', - above=0., maxval=MAX_CURRENT) - hold_current = config.getfloat('hold_current', MAX_CURRENT, - above=0., maxval=MAX_CURRENT) - self.req_hold_current = hold_current - self._set_globalscaler(run_current) - irun, ihold = self._calc_current(run_current, hold_current) - self.fields.set_field("ihold", ihold) - self.fields.set_field("irun", irun) - # self.fields.set_field("irun", 31) - def _set_globalscaler(self, current): - globalscaler = int((current * 256. * math.sqrt(2.) - / 2.0 + .5)) - globalscaler = max(32, globalscaler) - if globalscaler >= 256: - globalscaler = 0 - self.fields.set_field("globalscaler", globalscaler) - # self.fields.set_field("globalscaler", 0) - def _calc_current_bits(self, current): - globalscaler = self.fields.get_field("globalscaler") - if not globalscaler: - globalscaler = 256 - cs = int((current * 256. * 32. * math.sqrt(2.)) / (3. * globalscaler) -1. + .5) - return max(0, min(31, cs)) - def _calc_current(self, run_current, hold_current): - irun = self._calc_current_bits(run_current) - ihold = self._calc_current_bits(min(hold_current, run_current)) - return irun, ihold - def _calc_current_from_field(self, field_name): - globalscaler = self.fields.get_field("globalscaler") - if not globalscaler: - globalscaler = 256 - bits = self.fields.get_field(field_name) - return (globalscaler * (bits + 1) * 0.325 - / (256. * 32. * math.sqrt(2.))) - def get_current(self): - run_current = self._calc_current_from_field("irun") - hold_current = self._calc_current_from_field("ihold") - return run_current, hold_current, self.req_hold_current, MAX_CURRENT - def set_current(self, run_current, hold_current, print_time): - self.req_hold_current = hold_current - irun, ihold = self._calc_current(run_current, hold_current) - self.fields.set_field("ihold", ihold) - val = self.fields.set_field("irun", irun) - # self.printer.command_error("val = %d, print_time = ", val, print_time) - self.mcu_tmc.set_register("IHOLD_IRUN", val, print_time) - -###################################################################### -# TMC2240 printer object -###################################################################### - -class TMC2240: - def __init__(self, config): - # Setup mcu communication - self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) - self.mcu_tmc = tmc2130.MCU_TMC_SPI(config, Registers, self.fields) - # self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields, 4) - # Setup fields for UART - # self.fields.set_field("uart_en", True) - - # Allow virtual pins to be created - tmc.TMCVirtualPinHelper(config, self.mcu_tmc) - # Register commands - current_helper = TMC2240CurrentHelper(config, self.mcu_tmc) - cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) - cmdhelper.setup_register_dump(ReadRegisters) - self.get_phase_offset = cmdhelper.get_phase_offset - self.get_status = cmdhelper.get_status - # Setup basic register values - # tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) - tmc.TMC2240StealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) - set_config_field = self.fields.set_config_field - - # set_config_field(config, "en_pwm_mode", 1) - set_config_field(config, "reset", 1) - set_config_field(config, "drv_err", 1) - set_config_field(config, "uv_cp", 1) - set_config_field(config, "register_reset", 1) - set_config_field(config, "vm_uvlo", 1) - # set_config_field(config, "tpwmthrs", 100) - # set_config_field(config, "intpol", 0) - # set_config_field(config, "dedge", 0) - # set_config_field(config, "disfdcc", 1) - set_config_field(config, "toff", 3) - set_config_field(config, "hstrt", 5) - set_config_field(config, "hend", 2) - set_config_field(config, "fd3", 0) - set_config_field(config, "disfdcc", 0) - set_config_field(config, "chm", 0) - set_config_field(config, "tbl", 2) - set_config_field(config, "vhighfs", 0) - set_config_field(config, "vhighchm", 0) - set_config_field(config, "tpfd", 4) - set_config_field(config, "diss2g", 0) - set_config_field(config, "diss2vs", 0) - set_config_field(config, "semin", 0) - set_config_field(config, "seup", 0) - set_config_field(config, "semax", 0) - set_config_field(config, "sedn", 0) - set_config_field(config, "seimin", 0) - set_config_field(config, "sgt", 0) - set_config_field(config, "sfilt", 0) - set_config_field(config, "iholddelay", 6) - set_config_field(config, "pwm_ofs", 30) - set_config_field(config, "pwm_grad", 0) - set_config_field(config, "pwm_freq", 0) - set_config_field(config, "pwm_autoscale", True) - set_config_field(config, "pwm_autograd", True) - set_config_field(config, "freewheel", 0) - set_config_field(config, "pwm_reg", 4) - set_config_field(config, "pwm_lim", 12) - set_config_field(config, "tpowerdown", 10) - set_config_field(config, "current_range", 2) - set_config_field(config, "overtempperwarning_vth", 0x1ff) - - -def load_config_prefix(config): - return TMC2240(config) +# TMC2240 configuration +# +# Copyright (C) 2018-2023 Kevin O'Connor +# Copyright (C) 2023 Alex Voinea +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import math, logging +from . import bus, tmc, tmc2130, tmc_uart + +TMC_FREQUENCY=12500000. + +Registers = { + "GCONF": 0x00, + "GSTAT": 0x01, + "IFCNT": 0x02, + "NODECONF": 0x03, + "IOIN": 0x04, + "DRV_CONF": 0x0A, + "GLOBALSCALER": 0x0B, + "IHOLD_IRUN": 0x10, + "TPOWERDOWN": 0x11, + "TSTEP": 0x12, + "TPWMTHRS": 0x13, + "TCOOLTHRS": 0x14, + "THIGH": 0x15, + "DIRECT_MODE": 0x2D, + "ENCMODE": 0x38, + "X_ENC": 0x39, + "ENC_CONST": 0x3A, + "ENC_STATUS": 0x3B, + "ENC_LATCH": 0x3C, + "ADC_VSUPPLY_AIN": 0x50, + "ADC_TEMP": 0x51, + "OTW_OV_VTH": 0x52, + "MSLUT0": 0x60, + "MSLUT1": 0x61, + "MSLUT2": 0x62, + "MSLUT3": 0x63, + "MSLUT4": 0x64, + "MSLUT5": 0x65, + "MSLUT6": 0x66, + "MSLUT7": 0x67, + "MSLUTSEL": 0x68, + "MSLUTSTART": 0x69, + "MSCNT": 0x6A, + "MSCURACT": 0x6B, + "CHOPCONF": 0x6C, + "COOLCONF": 0x6D, + "DRV_STATUS": 0x6F, + "PWMCONF": 0x70, + "PWM_SCALE": 0x71, + "PWM_AUTO": 0x72, + "SG4_THRS": 0x74, + "SG4_RESULT": 0x75, + "SG4_IND": 0x76, +} + +ReadRegisters = [ + "GCONF", "GSTAT", "IOIN", "DRV_CONF", "GLOBALSCALER", "IHOLD_IRUN", + "TPOWERDOWN", "TSTEP", "TPWMTHRS", "TCOOLTHRS", "THIGH", "ADC_VSUPPLY_AIN", + "ADC_TEMP", "MSCNT", "MSCURACT", "CHOPCONF", "COOLCONF", "DRV_STATUS", + "PWMCONF", "PWM_SCALE", "PWM_AUTO", "SG4_THRS", "SG4_RESULT", "SG4_IND" +] + +Fields = {} +Fields["COOLCONF"] = { + "semin": 0x0F << 0, + "seup": 0x03 << 5, + "semax": 0x0F << 8, + "sedn": 0x03 << 13, + "seimin": 0x01 << 15, + "sgt": 0x7F << 16, + "sfilt": 0x01 << 24 +} +Fields["CHOPCONF"] = { + "toff": 0x0F << 0, + "hstrt": 0x07 << 4, + "hend": 0x0F << 7, + "fd3": 0x01 << 11, + "disfdcc": 0x01 << 12, + "chm": 0x01 << 14, + "tbl": 0x03 << 15, + "vhighfs": 0x01 << 18, + "vhighchm": 0x01 << 19, + "tpfd": 0x0F << 20, # midrange resonances + "mres": 0x0F << 24, + "intpol": 0x01 << 28, + "dedge": 0x01 << 29, + "diss2g": 0x01 << 30, + "diss2vs": 0x01 << 31 +} +Fields["DRV_STATUS"] = { + "sg_result": 0x3FF << 0, + "s2vsa": 0x01 << 12, + "s2vsb": 0x01 << 13, + "stealth": 0x01 << 14, + "fsactive": 0x01 << 15, + "csactual": 0x1F << 16, + "stallguard": 0x01 << 24, + "ot": 0x01 << 25, + "otpw": 0x01 << 26, + "s2ga": 0x01 << 27, + "s2gb": 0x01 << 28, + "ola": 0x01 << 29, + "olb": 0x01 << 30, + "stst": 0x01 << 31 +} +Fields["GCONF"] = { + "faststandstill": 0x01 << 1, + "en_pwm_mode": 0x01 << 2, + "multistep_filt": 0x01 << 3, + "shaft": 0x01 << 4, + "diag0_error": 0x01 << 5, + "diag0_otpw": 0x01 << 6, + "diag0_stall": 0x01 << 7, + "diag1_stall": 0x01 << 8, + "diag1_index": 0x01 << 9, + "diag1_onstate": 0x01 << 10, + "diag0_pushpull": 0x01 << 12, + "diag1_pushpull": 0x01 << 13, + "small_hysteresis": 0x01 << 14, + "stop_enable": 0x01 << 15, + "direct_mode": 0x01 << 16 +} +Fields["GSTAT"] = { + "reset": 0x01 << 0, + "drv_err": 0x01 << 1, + "uv_cp": 0x01 << 2, + "register_reset": 0x01 << 3, + "vm_uvlo": 0x01 << 4 +} +Fields["GLOBALSCALER"] = { + "globalscaler": 0xFF << 0 +} +Fields["IHOLD_IRUN"] = { + "ihold": 0x1F << 0, + "irun": 0x1F << 8, + "iholddelay": 0x0F << 16, + "irundelay": 0x0F << 24 +} +Fields["IOIN"] = { + "step": 0x01 << 0, + "dir": 0x01 << 1, + "encb": 0x01 << 2, + "enca": 0x01 << 3, + "drv_enn": 0x01 << 4, + "encn": 0x01 << 5, + "uart_en": 0x01 << 6, + "comp_a": 0x01 << 8, + "comp_b": 0x01 << 9, + "comp_a1_a2": 0x01 << 10, + "comp_b1_b2": 0x01 << 11, + "output": 0x01 << 12, + "ext_res_det": 0x01 << 13, + "ext_clk": 0x01 << 14, + "adc_err": 0x01 << 15, + "silicon_rv": 0x07 << 16, + "version": 0xFF << 24 +} +Fields["MSLUT0"] = { "mslut0": 0xffffffff } +Fields["MSLUT1"] = { "mslut1": 0xffffffff } +Fields["MSLUT2"] = { "mslut2": 0xffffffff } +Fields["MSLUT3"] = { "mslut3": 0xffffffff } +Fields["MSLUT4"] = { "mslut4": 0xffffffff } +Fields["MSLUT5"] = { "mslut5": 0xffffffff } +Fields["MSLUT6"] = { "mslut6": 0xffffffff } +Fields["MSLUT7"] = { "mslut7": 0xffffffff } +Fields["MSLUTSEL"] = { + "x3": 0xFF << 24, + "x2": 0xFF << 16, + "x1": 0xFF << 8, + "w3": 0x03 << 6, + "w2": 0x03 << 4, + "w1": 0x03 << 2, + "w0": 0x03 << 0, +} +Fields["MSLUTSTART"] = { + "start_sin": 0xFF << 0, + "start_sin90": 0xFF << 16, + "offset_sin90": 0xFF << 24, +} +Fields["MSCNT"] = { + "mscnt": 0x3ff << 0 +} +Fields["MSCURACT"] = { + "cur_a": 0x1ff << 0, + "cur_b": 0x1ff << 16 +} +Fields["PWM_AUTO"] = { + "pwm_ofs_auto": 0xff << 0, + "pwm_grad_auto": 0xff << 16 +} +Fields["PWMCONF"] = { + "pwm_ofs": 0xFF << 0, + "pwm_grad": 0xFF << 8, + "pwm_freq": 0x03 << 16, + "pwm_autoscale": 0x01 << 18, + "pwm_autograd": 0x01 << 19, + "freewheel": 0x03 << 20, + "pwm_meas_sd_enable": 0x01 << 22, + "pwm_dis_reg_stst": 0x01 << 23, + "pwm_reg": 0x0F << 24, + "pwm_lim": 0x0F << 28 +} +Fields["PWM_SCALE"] = { + "pwm_scale_sum": 0x3ff << 0, + "pwm_scale_auto": 0x1ff << 16 +} +Fields["TPOWERDOWN"] = { + "tpowerdown": 0xff << 0 +} +Fields["TPWMTHRS"] = { + "tpwmthrs": 0xfffff << 0 +} +Fields["TCOOLTHRS"] = { + "tcoolthrs": 0xfffff << 0 +} +Fields["TSTEP"] = { + "tstep": 0xfffff << 0 +} +Fields["THIGH"] = { + "thigh": 0xfffff << 0 +} +Fields["DRV_CONF"] = { + "current_range": 0x03 << 0, + "slope_control": 0x03 << 4 +} +Fields["ADC_VSUPPLY_AIN"] = { + "adc_vsupply": 0x1fff << 0, + "adc_ain": 0x1fff << 16 +} +Fields["ADC_TEMP"] = { + "adc_temp": 0x1fff << 0 +} +Fields["OTW_OV_VTH"] = { + "overvoltage_vth": 0x1fff << 0, + "overtempprewarning_vth": 0x1fff << 16 +} +Fields["SG4_THRS"] = { + "sg4_thrs": 0xFF << 0, + "sg4_filt_en": 0x01 << 8, + "sg4_angle_offset": 0x01 << 9 +} +Fields["SG4_RESULT"] = { + "sg4_result": 0x3FF << 0 +} +Fields["SG4_IND"] = { + "sg4_ind_0": 0xFF << 0, + "sg4_ind_1": 0xFF << 8, + "sg4_ind_2": 0xFF << 16, + "sg4_ind_3": 0xFF << 24 +} + + +SignedFields = ["cur_a", "cur_b", "sgt", "pwm_scale_auto", "offset_sin90"] + +FieldFormatters = dict(tmc2130.FieldFormatters) +FieldFormatters.update({ + "s2vsa": (lambda v: "1(ShortToSupply_A!)" if v else ""), + "s2vsb": (lambda v: "1(ShortToSupply_B!)" if v else ""), + "adc_temp": (lambda v: "0x%04x(%.1fC)" % (v, ((v - 2038) / 7.7))), +}) + + +###################################################################### +# TMC stepper current config helper +###################################################################### + +class TMC2240CurrentHelper: + def __init__(self, config, mcu_tmc): + self.printer = config.get_printer() + self.name = config.get_name().split()[-1] + self.mcu_tmc = mcu_tmc + self.fields = mcu_tmc.get_fields() + self.Rref = config.getfloat('rref', 12000., + minval=12000., maxval=60000.) + max_cur = self._get_ifs_rms(3) + run_current = config.getfloat('run_current', above=0., maxval=max_cur) + hold_current = config.getfloat('hold_current', max_cur, + above=0., maxval=max_cur) + self.req_hold_current = hold_current + current_range = self._calc_current_range(run_current) + self.fields.set_field("current_range", current_range) + gscaler, irun, ihold = self._calc_current(run_current, hold_current) + self.fields.set_field("globalscaler", gscaler) + self.fields.set_field("ihold", ihold) + self.fields.set_field("irun", irun) + def _get_ifs_rms(self, current_range=None): + if current_range is None: + current_range = self.fields.get_field("current_range") + KIFS = [11750., 24000., 36000., 36000.] + return (KIFS[current_range] / self.Rref) / math.sqrt(2.) + def _calc_current_range(self, current): + for current_range in range(4): + if current <= self._get_ifs_rms(current_range): + break + return current_range + def _calc_globalscaler(self, current): + ifs_rms = self._get_ifs_rms() + globalscaler = int(((current * 256.) / ifs_rms) + .5) + globalscaler = max(32, globalscaler) + if globalscaler >= 256: + globalscaler = 0 + return globalscaler + def _calc_current_bits(self, current, globalscaler): + ifs_rms = self._get_ifs_rms() + if not globalscaler: + globalscaler = 256 + cs = int((current * 256. * 32.) / (globalscaler * ifs_rms) - 1. + .5) + return max(0, min(31, cs)) + def _calc_current(self, run_current, hold_current): + gscaler = self._calc_globalscaler(run_current) + irun = self._calc_current_bits(run_current, gscaler) + ihold = self._calc_current_bits(min(hold_current, run_current), gscaler) + return gscaler, irun, ihold + def _calc_current_from_field(self, field_name): + ifs_rms = self._get_ifs_rms() + globalscaler = self.fields.get_field("globalscaler") + if not globalscaler: + globalscaler = 256 + bits = self.fields.get_field(field_name) + return globalscaler * (bits + 1) * ifs_rms / (256. * 32.) + def get_current(self): + ifs_rms = self._get_ifs_rms() + run_current = self._calc_current_from_field("irun") + hold_current = self._calc_current_from_field("ihold") + return (run_current, hold_current, self.req_hold_current, ifs_rms) + def set_current(self, run_current, hold_current, print_time): + self.req_hold_current = hold_current + gscaler, irun, ihold = self._calc_current(run_current, hold_current) + val = self.fields.set_field("globalscaler", gscaler) + self.mcu_tmc.set_register("GLOBALSCALER", val, print_time) + self.fields.set_field("ihold", ihold) + val = self.fields.set_field("irun", irun) + self.mcu_tmc.set_register("IHOLD_IRUN", val, print_time) + + +###################################################################### +# TMC2240 printer object +###################################################################### + +class TMC2240: + def __init__(self, config): + # Setup mcu communication + self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) + if config.get("uart_pin", None) is not None: + # use UART for communication + self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields, + 3, TMC_FREQUENCY) + else: + # Use SPI bus for communication + self.mcu_tmc = tmc2130.MCU_TMC_SPI(config, Registers, self.fields, + TMC_FREQUENCY) + # Allow virtual pins to be created + tmc.TMCVirtualPinHelper(config, self.mcu_tmc) + # Register commands + current_helper = TMC2240CurrentHelper(config, self.mcu_tmc) + cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) + cmdhelper.setup_register_dump(ReadRegisters) + self.get_phase_offset = cmdhelper.get_phase_offset + self.get_status = cmdhelper.get_status + # Setup basic register values + tmc.TMCWaveTableHelper(config, self.mcu_tmc) + self.fields.set_config_field(config, "offset_sin90", 0) + tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) + set_config_field = self.fields.set_config_field + # GCONF + set_config_field(config, "multistep_filt", True) + # CHOPCONF + set_config_field(config, "toff", 3) + set_config_field(config, "hstrt", 5) + set_config_field(config, "hend", 2) + set_config_field(config, "fd3", 0) + set_config_field(config, "disfdcc", 0) + set_config_field(config, "chm", 0) + set_config_field(config, "tbl", 2) + set_config_field(config, "vhighfs", 0) + set_config_field(config, "vhighchm", 0) + set_config_field(config, "tpfd", 4) + set_config_field(config, "diss2g", 0) + set_config_field(config, "diss2vs", 0) + # COOLCONF + set_config_field(config, "semin", 0) + set_config_field(config, "seup", 0) + set_config_field(config, "semax", 0) + set_config_field(config, "sedn", 0) + set_config_field(config, "seimin", 0) + set_config_field(config, "sgt", 0) + set_config_field(config, "sfilt", 0) + # IHOLDIRUN + set_config_field(config, "iholddelay", 6) + set_config_field(config, "irundelay", 4) + # PWMCONF + set_config_field(config, "pwm_ofs", 29) + set_config_field(config, "pwm_grad", 0) + set_config_field(config, "pwm_freq", 0) + set_config_field(config, "pwm_autoscale", True) + set_config_field(config, "pwm_autograd", True) + set_config_field(config, "freewheel", 0) + set_config_field(config, "pwm_reg", 4) + set_config_field(config, "pwm_lim", 12) + # TPOWERDOWN + set_config_field(config, "tpowerdown", 10) + # SG4_THRS + set_config_field(config, "sg4_angle_offset", 1) + +def load_config_prefix(config): + return TMC2240(config) diff --git a/klippy/extras/tmc2660.py b/klippy/extras/tmc2660.py index e873c60..8405767 100644 --- a/klippy/extras/tmc2660.py +++ b/klippy/extras/tmc2660.py @@ -1,274 +1,276 @@ -# TMC2660 configuration -# -# Copyright (C) 2018-2019 Florian Heilmann -# Copyright (C) 2019-2021 Kevin O'Connor -# -# This file may be distributed under the terms of the GNU GPLv3 license. -import math, logging -from . import bus, tmc, tmc2130 - -Registers = { - "DRVCONF": 0xE, "SGCSCONF": 0xC, "SMARTEN": 0xA, - "CHOPCONF": 0x8, "DRVCTRL": 0x0 -} - -ReadRegisters = [ "READRSP@RDSEL0", "READRSP@RDSEL1", "READRSP@RDSEL2" ] - -Fields = {} - -Fields["DRVCTRL"] = { - "mres": 0x0f, - "dedge": 0x01 << 8, - "intpol": 0x01 << 9, -} - -Fields["CHOPCONF"] = { - "toff": 0x0f, - "hstrt": 0x7 << 4, - "hend": 0x0f << 7, - "hdec": 0x03 << 11, - "rndtf": 0x01 << 13, - "chm": 0x01 << 14, - "tbl": 0x03 << 15 -} - -Fields["SMARTEN"] = { - "semin" : 0x0f, - "seup": 0x03 << 5, - "semax": 0x0f << 8, - "sedn": 0x03 << 13, - "seimin": 0x01 << 15 -} - -Fields["SGCSCONF"] = { - "cs": 0x1f, - "sgt": 0x7F << 8, - "sfilt": 0x01 << 16 -} - -Fields["DRVCONF"] = { - "rdsel": 0x03 << 4, - "vsense": 0x01 << 6, - "sdoff": 0x01 << 7, - "ts2g": 0x03 << 8, - "diss2g": 0x01 << 10, - "slpl": 0x03 << 12, - "slph": 0x03 << 14, - "tst": 0x01 << 16 -} - -Fields["READRSP@RDSEL0"] = { - "stallguard": 0x01 << 4, - "ot": 0x01 << 5, - "otpw": 0x01 << 6, - "s2ga": 0x01 << 7, - "s2gb": 0x01 << 8, - "ola": 0x01 << 9, - "olb": 0x01 << 10, - "stst": 0x01 << 11, - "mstep": 0x3ff << 14 -} - -Fields["READRSP@RDSEL1"] = { - "stallguard": 0x01 << 4, - "ot": 0x01 << 5, - "otpw": 0x01 << 6, - "s2ga": 0x01 << 7, - "s2gb": 0x01 << 8, - "ola": 0x01 << 9, - "olb": 0x01 << 10, - "stst": 0x01 << 11, - "sg_result": 0x3ff << 14 -} - -Fields["READRSP@RDSEL2"] = { - "stallguard": 0x01 << 4, - "ot": 0x01 << 5, - "otpw": 0x01 << 6, - "s2ga": 0x01 << 7, - "s2gb": 0x01 << 8, - "ola": 0x01 << 9, - "olb": 0x01 << 10, - "stst": 0x01 << 11, - "se": 0x1f << 14, - "sg_result@rdsel2": 0x1f << 19 -} - -SignedFields = ["sgt"] - -FieldFormatters = dict(tmc2130.FieldFormatters) -FieldFormatters.update({ - "chm": (lambda v: "1(constant toff)" if v else "0(spreadCycle)"), - "vsense": (lambda v: "1(165mV)" if v else "0(305mV)"), - "sdoff": (lambda v: "1(Step/Dir disabled!)" if v else ""), - "diss2g": (lambda v: "1(Short to GND disabled!)" if v else ""), - "se": (lambda v: ("%d" % v) if v else "0(Reset?)"), -}) - - -###################################################################### -# TMC stepper current config helper -###################################################################### - -MAX_CURRENT = 2.400 - -class TMC2660CurrentHelper: - def __init__(self, config, mcu_tmc): - self.printer = config.get_printer() - self.name = config.get_name().split()[-1] - self.mcu_tmc = mcu_tmc - self.fields = mcu_tmc.get_fields() - self.current = config.getfloat('run_current', minval=0.1, - maxval=MAX_CURRENT) - self.sense_resistor = config.getfloat('sense_resistor') - vsense, cs = self._calc_current(self.current) - self.fields.set_field("cs", cs) - self.fields.set_field("vsense", vsense) - - # Register ready/printing handlers - self.idle_current_percentage = config.getint( - 'idle_current_percent', default=100, minval=0, maxval=100) - if self.idle_current_percentage < 100: - self.printer.register_event_handler("idle_timeout:printing", - self._handle_printing) - self.printer.register_event_handler("idle_timeout:ready", - self._handle_ready) - - def _calc_current_bits(self, current, vsense): - vref = 0.165 if vsense else 0.310 - sr = self.sense_resistor - cs = int(32. * sr * current * math.sqrt(2.) / vref + .5) - 1 - return max(0, min(31, cs)) - - def _calc_current_from_bits(self, cs, vsense): - vref = 0.165 if vsense else 0.310 - return (cs + 1) * vref / (32. * self.sense_resistor * math.sqrt(2.)) - - def _calc_current(self, run_current): - vsense = True - irun = self._calc_current_bits(run_current, True) - if irun == 31: - cur = self._calc_current_from_bits(irun, True) - if cur < run_current: - irun2 = self._calc_current_bits(run_current, False) - cur2 = self._calc_current_from_bits(irun2, False) - if abs(run_current - cur2) < abs(run_current - cur): - vsense = False - irun = irun2 - return vsense, irun - - def _handle_printing(self, print_time): - print_time -= 0.100 # Schedule slightly before deadline - self.printer.get_reactor().register_callback( - (lambda ev: self._update_current(self.current, print_time))) - - def _handle_ready(self, print_time): - current = self.current * float(self.idle_current_percentage) / 100. - self.printer.get_reactor().register_callback( - (lambda ev: self._update_current(current, print_time))) - - def _update_current(self, current, print_time): - vsense, cs = self._calc_current(current) - val = self.fields.set_field("cs", cs) - self.mcu_tmc.set_register("SGCSCONF", val, print_time) - # Only update VSENSE if we need to - if vsense != self.fields.get_field("vsense"): - val = self.fields.set_field("vsense", vsense) - self.mcu_tmc.set_register("DRVCONF", val, print_time) - - def get_current(self): - return self.current, None, None, MAX_CURRENT - - def set_current(self, run_current, hold_current, print_time): - self.current = run_current - self._update_current(run_current, print_time) - - -###################################################################### -# TMC2660 SPI -###################################################################### - -# Helper code for working with TMC2660 devices via SPI -class MCU_TMC2660_SPI: - def __init__(self, config, name_to_reg, fields): - self.printer = config.get_printer() - self.mutex = self.printer.get_reactor().mutex() - self.spi = bus.MCU_SPI_from_config(config, 0, default_speed=4000000) - self.name_to_reg = name_to_reg - self.fields = fields - def get_fields(self): - return self.fields - def get_register(self, reg_name): - new_rdsel = ReadRegisters.index(reg_name) - reg = self.name_to_reg["DRVCONF"] - if self.printer.get_start_args().get('debugoutput') is not None: - return 0 - with self.mutex: - old_rdsel = self.fields.get_field("rdsel") - val = self.fields.set_field("rdsel", new_rdsel) - msg = [((val >> 16) | reg) & 0xff, (val >> 8) & 0xff, val & 0xff] - if new_rdsel != old_rdsel: - # Must set RDSEL value first - self.spi.spi_send(msg) - params = self.spi.spi_transfer(msg) - pr = bytearray(params['response']) - return (pr[0] << 16) | (pr[1] << 8) | pr[2] - def set_register(self, reg_name, val, print_time=None): - minclock = 0 - if print_time is not None: - minclock = self.spi.get_mcu().print_time_to_clock(print_time) - reg = self.name_to_reg[reg_name] - msg = [((val >> 16) | reg) & 0xff, (val >> 8) & 0xff, val & 0xff] - with self.mutex: - self.spi.spi_send(msg, minclock) - - -###################################################################### -# TMC2660 printer object -###################################################################### - -class TMC2660: - def __init__(self, config): - # Setup mcu communication - self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) - self.fields.set_field("sdoff", 0) # Access DRVCTRL in step/dir mode - self.mcu_tmc = MCU_TMC2660_SPI(config, Registers, self.fields) - # Register commands - current_helper = TMC2660CurrentHelper(config, self.mcu_tmc) - cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) - cmdhelper.setup_register_dump(ReadRegisters) - self.get_phase_offset = cmdhelper.get_phase_offset - self.get_status = cmdhelper.get_status - - # CHOPCONF - set_config_field = self.fields.set_config_field - set_config_field(config, "tbl", 2) - set_config_field(config, "rndtf", 0) - set_config_field(config, "hdec", 0) - set_config_field(config, "chm", 0) - set_config_field(config, "hend", 3) - set_config_field(config, "hstrt", 3) - set_config_field(config, "toff", 4) - if not self.fields.get_field("chm"): - if (self.fields.get_field("hstrt") + - self.fields.get_field("hend")) > 15: - raise config.error("driver_HEND + driver_HSTRT must be <= 15") - # SMARTEN - set_config_field(config, "seimin", 0) - set_config_field(config, "sedn", 0) - set_config_field(config, "semax", 0) - set_config_field(config, "seup", 0) - set_config_field(config, "semin", 0) - - # SGSCONF - set_config_field(config, "sfilt", 0) - set_config_field(config, "sgt", 0) - - # DRVCONF - set_config_field(config, "slph", 0) - set_config_field(config, "slpl", 0) - set_config_field(config, "diss2g", 0) - set_config_field(config, "ts2g", 3) - -def load_config_prefix(config): - return TMC2660(config) +# TMC2660 configuration +# +# Copyright (C) 2018-2019 Florian Heilmann +# Copyright (C) 2019-2021 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import math, logging +from . import bus, tmc, tmc2130 + +Registers = { + "DRVCONF": 0xE, "SGCSCONF": 0xC, "SMARTEN": 0xA, + "CHOPCONF": 0x8, "DRVCTRL": 0x0 +} + +ReadRegisters = [ "READRSP@RDSEL0", "READRSP@RDSEL1", "READRSP@RDSEL2" ] + +Fields = {} + +Fields["DRVCTRL"] = { + "mres": 0x0f, + "dedge": 0x01 << 8, + "intpol": 0x01 << 9, +} + +Fields["CHOPCONF"] = { + "toff": 0x0f, + "hstrt": 0x7 << 4, + "hend": 0x0f << 7, + "hdec": 0x03 << 11, + "rndtf": 0x01 << 13, + "chm": 0x01 << 14, + "tbl": 0x03 << 15 +} + +Fields["SMARTEN"] = { + "semin" : 0x0f, + "seup": 0x03 << 5, + "semax": 0x0f << 8, + "sedn": 0x03 << 13, + "seimin": 0x01 << 15 +} + +Fields["SGCSCONF"] = { + "cs": 0x1f, + "sgt": 0x7F << 8, + "sfilt": 0x01 << 16 +} + +Fields["DRVCONF"] = { + "rdsel": 0x03 << 4, + "vsense": 0x01 << 6, + "sdoff": 0x01 << 7, + "ts2g": 0x03 << 8, + "diss2g": 0x01 << 10, + "slpl": 0x03 << 12, + "slph": 0x03 << 14, + "tst": 0x01 << 16 +} + +Fields["READRSP@RDSEL0"] = { + "stallguard": 0x01 << 4, + "ot": 0x01 << 5, + "otpw": 0x01 << 6, + "s2ga": 0x01 << 7, + "s2gb": 0x01 << 8, + "ola": 0x01 << 9, + "olb": 0x01 << 10, + "stst": 0x01 << 11, + "mstep": 0x3ff << 14 +} + +Fields["READRSP@RDSEL1"] = { + "stallguard": 0x01 << 4, + "ot": 0x01 << 5, + "otpw": 0x01 << 6, + "s2ga": 0x01 << 7, + "s2gb": 0x01 << 8, + "ola": 0x01 << 9, + "olb": 0x01 << 10, + "stst": 0x01 << 11, + "sg_result": 0x3ff << 14 +} + +Fields["READRSP@RDSEL2"] = { + "stallguard": 0x01 << 4, + "ot": 0x01 << 5, + "otpw": 0x01 << 6, + "s2ga": 0x01 << 7, + "s2gb": 0x01 << 8, + "ola": 0x01 << 9, + "olb": 0x01 << 10, + "stst": 0x01 << 11, + "se": 0x1f << 14, + "sg_result@rdsel2": 0x1f << 19 +} + +SignedFields = ["sgt"] + +FieldFormatters = dict(tmc2130.FieldFormatters) +FieldFormatters.update({ + "chm": (lambda v: "1(constant toff)" if v else "0(spreadCycle)"), + "vsense": (lambda v: "1(165mV)" if v else "0(305mV)"), + "sdoff": (lambda v: "1(Step/Dir disabled!)" if v else ""), + "diss2g": (lambda v: "1(Short to GND disabled!)" if v else ""), + "se": (lambda v: ("%d" % v) if v else "0(Reset?)"), +}) + + +###################################################################### +# TMC stepper current config helper +###################################################################### + +MAX_CURRENT = 2.400 + +class TMC2660CurrentHelper: + def __init__(self, config, mcu_tmc): + self.printer = config.get_printer() + self.name = config.get_name().split()[-1] + self.mcu_tmc = mcu_tmc + self.fields = mcu_tmc.get_fields() + self.current = config.getfloat('run_current', minval=0.1, + maxval=MAX_CURRENT) + self.sense_resistor = config.getfloat('sense_resistor') + vsense, cs = self._calc_current(self.current) + self.fields.set_field("cs", cs) + self.fields.set_field("vsense", vsense) + + # Register ready/printing handlers + self.idle_current_percentage = config.getint( + 'idle_current_percent', default=100, minval=0, maxval=100) + if self.idle_current_percentage < 100: + self.printer.register_event_handler("idle_timeout:printing", + self._handle_printing) + self.printer.register_event_handler("idle_timeout:ready", + self._handle_ready) + + def _calc_current_bits(self, current, vsense): + vref = 0.165 if vsense else 0.310 + sr = self.sense_resistor + cs = int(32. * sr * current * math.sqrt(2.) / vref + .5) - 1 + return max(0, min(31, cs)) + + def _calc_current_from_bits(self, cs, vsense): + vref = 0.165 if vsense else 0.310 + return (cs + 1) * vref / (32. * self.sense_resistor * math.sqrt(2.)) + + def _calc_current(self, run_current): + vsense = True + irun = self._calc_current_bits(run_current, True) + if irun == 31: + cur = self._calc_current_from_bits(irun, True) + if cur < run_current: + irun2 = self._calc_current_bits(run_current, False) + cur2 = self._calc_current_from_bits(irun2, False) + if abs(run_current - cur2) < abs(run_current - cur): + vsense = False + irun = irun2 + return vsense, irun + + def _handle_printing(self, print_time): + print_time -= 0.100 # Schedule slightly before deadline + self.printer.get_reactor().register_callback( + (lambda ev: self._update_current(self.current, print_time))) + + def _handle_ready(self, print_time): + current = self.current * float(self.idle_current_percentage) / 100. + self.printer.get_reactor().register_callback( + (lambda ev: self._update_current(current, print_time))) + + def _update_current(self, current, print_time): + vsense, cs = self._calc_current(current) + val = self.fields.set_field("cs", cs) + self.mcu_tmc.set_register("SGCSCONF", val, print_time) + # Only update VSENSE if we need to + if vsense != self.fields.get_field("vsense"): + val = self.fields.set_field("vsense", vsense) + self.mcu_tmc.set_register("DRVCONF", val, print_time) + + def get_current(self): + return self.current, None, None, MAX_CURRENT + + def set_current(self, run_current, hold_current, print_time): + self.current = run_current + self._update_current(run_current, print_time) + + +###################################################################### +# TMC2660 SPI +###################################################################### + +# Helper code for working with TMC2660 devices via SPI +class MCU_TMC2660_SPI: + def __init__(self, config, name_to_reg, fields): + self.printer = config.get_printer() + self.mutex = self.printer.get_reactor().mutex() + self.spi = bus.MCU_SPI_from_config(config, 0, default_speed=4000000) + self.name_to_reg = name_to_reg + self.fields = fields + def get_fields(self): + return self.fields + def get_register(self, reg_name): + new_rdsel = ReadRegisters.index(reg_name) + reg = self.name_to_reg["DRVCONF"] + if self.printer.get_start_args().get('debugoutput') is not None: + return 0 + with self.mutex: + old_rdsel = self.fields.get_field("rdsel") + val = self.fields.set_field("rdsel", new_rdsel) + msg = [((val >> 16) | reg) & 0xff, (val >> 8) & 0xff, val & 0xff] + if new_rdsel != old_rdsel: + # Must set RDSEL value first + self.spi.spi_send(msg) + params = self.spi.spi_transfer(msg) + pr = bytearray(params['response']) + return (pr[0] << 16) | (pr[1] << 8) | pr[2] + def set_register(self, reg_name, val, print_time=None): + minclock = 0 + if print_time is not None: + minclock = self.spi.get_mcu().print_time_to_clock(print_time) + reg = self.name_to_reg[reg_name] + msg = [((val >> 16) | reg) & 0xff, (val >> 8) & 0xff, val & 0xff] + with self.mutex: + self.spi.spi_send(msg, minclock) + def get_tmc_frequency(self): + return None + + +###################################################################### +# TMC2660 printer object +###################################################################### + +class TMC2660: + def __init__(self, config): + # Setup mcu communication + self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) + self.fields.set_field("sdoff", 0) # Access DRVCTRL in step/dir mode + self.mcu_tmc = MCU_TMC2660_SPI(config, Registers, self.fields) + # Register commands + current_helper = TMC2660CurrentHelper(config, self.mcu_tmc) + cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) + cmdhelper.setup_register_dump(ReadRegisters) + self.get_phase_offset = cmdhelper.get_phase_offset + self.get_status = cmdhelper.get_status + + # CHOPCONF + set_config_field = self.fields.set_config_field + set_config_field(config, "tbl", 2) + set_config_field(config, "rndtf", 0) + set_config_field(config, "hdec", 0) + set_config_field(config, "chm", 0) + set_config_field(config, "hend", 3) + set_config_field(config, "hstrt", 3) + set_config_field(config, "toff", 4) + if not self.fields.get_field("chm"): + if (self.fields.get_field("hstrt") + + self.fields.get_field("hend")) > 15: + raise config.error("driver_HEND + driver_HSTRT must be <= 15") + # SMARTEN + set_config_field(config, "seimin", 0) + set_config_field(config, "sedn", 0) + set_config_field(config, "semax", 0) + set_config_field(config, "seup", 0) + set_config_field(config, "semin", 0) + + # SGSCONF + set_config_field(config, "sfilt", 0) + set_config_field(config, "sgt", 0) + + # DRVCONF + set_config_field(config, "slph", 0) + set_config_field(config, "slpl", 0) + set_config_field(config, "diss2g", 0) + set_config_field(config, "ts2g", 3) + +def load_config_prefix(config): + return TMC2660(config) diff --git a/klippy/extras/tmc5160.py b/klippy/extras/tmc5160.py index 4d97027..9950f66 100644 --- a/klippy/extras/tmc5160.py +++ b/klippy/extras/tmc5160.py @@ -1,340 +1,383 @@ -# TMC5160 configuration -# -# Copyright (C) 2018-2019 Kevin O'Connor -# -# This file may be distributed under the terms of the GNU GPLv3 license. -import math, logging -from . import bus, tmc, tmc2130 - -TMC_FREQUENCY=12000000. - -Registers = { - "GCONF": 0x00, - "GSTAT": 0x01, - "IFCNT": 0x02, - "SLAVECONF": 0x03, - "IOIN": 0x04, - "X_COMPARE": 0x05, - "OTP_READ": 0x07, - "FACTORY_CONF": 0x08, - "SHORT_CONF": 0x09, - "DRV_CONF": 0x0A, - "GLOBALSCALER": 0x0B, - "OFFSET_READ": 0x0C, - "IHOLD_IRUN": 0x10, - "TPOWERDOWN": 0x11, - "TSTEP": 0x12, - "TPWMTHRS": 0x13, - "TCOOLTHRS": 0x14, - "THIGH": 0x15, - "RAMPMODE": 0x20, - "XACTUAL": 0x21, - "VACTUAL": 0x22, - "VSTART": 0x23, - "A1": 0x24, - "V1": 0x25, - "AMAX": 0x26, - "VMAX": 0x27, - "DMAX": 0x28, - "D1": 0x2A, - "VSTOP": 0x2B, - "TZEROWAIT": 0x2C, - "XTARGET": 0x2D, - "VDCMIN": 0x33, - "SW_MODE": 0x34, - "RAMP_STAT": 0x35, - "XLATCH": 0x36, - "ENCMODE": 0x38, - "X_ENC": 0x39, - "ENC_CONST": 0x3A, - "ENC_STATUS": 0x3B, - "ENC_LATCH": 0x3C, - "ENC_DEVIATION": 0x3D, - "MSLUT0": 0x60, - "MSLUT1": 0x61, - "MSLUT2": 0x62, - "MSLUT3": 0x63, - "MSLUT4": 0x64, - "MSLUT5": 0x65, - "MSLUT6": 0x66, - "MSLUT7": 0x67, - "MSLUTSEL": 0x68, - "MSLUTSTART": 0x69, - "MSCNT": 0x6A, - "MSCURACT": 0x6B, - "CHOPCONF": 0x6C, - "COOLCONF": 0x6D, - "DCCTRL": 0x6E, - "DRV_STATUS": 0x6F, - "PWMCONF": 0x70, - "PWM_SCALE": 0x71, - "PWM_AUTO": 0x72, - "LOST_STEPS": 0x73, -} - -ReadRegisters = [ - "GCONF", "CHOPCONF", "GSTAT", "DRV_STATUS", "FACTORY_CONF", "IOIN", - "LOST_STEPS", "MSCNT", "MSCURACT", "OTP_READ", "PWM_SCALE", - "PWM_AUTO", "TSTEP" -] - -Fields = {} -Fields["COOLCONF"] = { - "semin": 0x0F << 0, - "seup": 0x03 << 5, - "semax": 0x0F << 8, - "sedn": 0x03 << 13, - "seimin": 0x01 << 15, - "sgt": 0x7F << 16, - "sfilt": 0x01 << 24 -} -Fields["CHOPCONF"] = { - "toff": 0x0F << 0, - "hstrt": 0x07 << 4, - "hend": 0x0F << 7, - "fd3": 0x01 << 11, - "disfdcc": 0x01 << 12, - "chm": 0x01 << 14, - "tbl": 0x03 << 15, - "vhighfs": 0x01 << 18, - "vhighchm": 0x01 << 19, - "tpfd": 0x0F << 20, # midrange resonances - "mres": 0x0F << 24, - "intpol": 0x01 << 28, - "dedge": 0x01 << 29, - "diss2g": 0x01 << 30, - "diss2vs": 0x01 << 31 -} -Fields["DRV_STATUS"] = { - "sg_result": 0x3FF << 0, - "s2vsa": 0x01 << 12, - "s2vsb": 0x01 << 13, - "stealth": 0x01 << 14, - "fsactive": 0x01 << 15, - "csactual": 0xFF << 16, - "stallguard": 0x01 << 24, - "ot": 0x01 << 25, - "otpw": 0x01 << 26, - "s2ga": 0x01 << 27, - "s2gb": 0x01 << 28, - "ola": 0x01 << 29, - "olb": 0x01 << 30, - "stst": 0x01 << 31 -} -Fields["FACTORY_CONF"] = { - "factory_conf": 0x1F << 0 -} -Fields["GCONF"] = { - "recalibrate": 0x01 << 0, - "faststandstill": 0x01 << 1, - "en_pwm_mode": 0x01 << 2, - "multistep_filt": 0x01 << 3, - "shaft": 0x01 << 4, - "diag0_error": 0x01 << 5, - "diag0_otpw": 0x01 << 6, - "diag0_stall": 0x01 << 7, - "diag1_stall": 0x01 << 8, - "diag1_index": 0x01 << 9, - "diag1_onstate": 0x01 << 10, - "diag1_steps_skipped": 0x01 << 11, - "diag0_int_pushpull": 0x01 << 12, - "diag1_poscomp_pushpull": 0x01 << 13, - "small_hysteresis": 0x01 << 14, - "stop_enable": 0x01 << 15, - "direct_mode": 0x01 << 16, - "test_mode": 0x01 << 17 -} -Fields["GSTAT"] = { - "reset": 0x01 << 0, - "drv_err": 0x01 << 1, - "uv_cp": 0x01 << 2 -} -Fields["GLOBALSCALER"] = { - "globalscaler": 0xFF << 0 -} -Fields["IHOLD_IRUN"] = { - "ihold": 0x1F << 0, - "irun": 0x1F << 8, - "iholddelay": 0x0F << 16 -} -Fields["IOIN"] = { - "refl_step": 0x01 << 0, - "refr_dir": 0x01 << 1, - "encb_dcen_cfg4": 0x01 << 2, - "enca_dcin_cfg5": 0x01 << 3, - "drv_enn": 0x01 << 4, - "enc_n_dco_cfg6": 0x01 << 5, - "sd_mode": 0x01 << 6, - "swcomp_in": 0x01 << 7, - "version": 0xFF << 24 -} -Fields["LOST_STEPS"] = { - "lost_steps": 0xfffff << 0 -} -Fields["MSCNT"] = { - "mscnt": 0x3ff << 0 -} -Fields["MSCURACT"] = { - "cur_a": 0x1ff << 0, - "cur_b": 0x1ff << 16 -} -Fields["OTP_READ"] = { - "otp_fclktrim": 0x1f << 0, - "otp_s2_level": 0x01 << 5, - "otp_bbm": 0x01 << 6, - "otp_tbl": 0x01 << 7 -} -Fields["PWM_AUTO"] = { - "pwm_ofs_auto": 0xff << 0, - "pwm_grad_auto": 0xff << 16 -} -Fields["PWMCONF"] = { - "pwm_ofs": 0xFF << 0, - "pwm_grad": 0xFF << 8, - "pwm_freq": 0x03 << 16, - "pwm_autoscale": 0x01 << 18, - "pwm_autograd": 0x01 << 19, - "freewheel": 0x03 << 20, - "pwm_reg": 0x0F << 24, - "pwm_lim": 0x0F << 28 -} -Fields["PWM_SCALE"] = { - "pwm_scale_sum": 0xff << 0, - "pwm_scale_auto": 0x1ff << 16 -} -Fields["TPOWERDOWN"] = { - "tpowerdown": 0xff << 0 -} -Fields["TPWMTHRS"] = { - "tpwmthrs": 0xfffff << 0 -} -Fields["TCOOLTHRS"] = { - "tcoolthrs": 0xfffff << 0 -} -Fields["TSTEP"] = { - "tstep": 0xfffff << 0 -} - -SignedFields = ["cur_a", "cur_b", "sgt", "xactual", "vactual", "pwm_scale_auto"] - -FieldFormatters = dict(tmc2130.FieldFormatters) - - -###################################################################### -# TMC stepper current config helper -###################################################################### - -VREF = 0.325 -MAX_CURRENT = 3.000 - -class TMC5160CurrentHelper: - def __init__(self, config, mcu_tmc): - self.printer = config.get_printer() - self.name = config.get_name().split()[-1] - self.mcu_tmc = mcu_tmc - self.fields = mcu_tmc.get_fields() - run_current = config.getfloat('run_current', - above=0., maxval=MAX_CURRENT) - hold_current = config.getfloat('hold_current', MAX_CURRENT, - above=0., maxval=MAX_CURRENT) - self.req_hold_current = hold_current - self.sense_resistor = config.getfloat('sense_resistor', 0.075, above=0.) - self._set_globalscaler(run_current) - irun, ihold = self._calc_current(run_current, hold_current) - self.fields.set_field("ihold", ihold) - self.fields.set_field("irun", irun) - def _set_globalscaler(self, current): - globalscaler = int((current * 256. * math.sqrt(2.) - * self.sense_resistor / VREF) + .5) - globalscaler = max(32, globalscaler) - if globalscaler >= 256: - globalscaler = 0 - self.fields.set_field("globalscaler", globalscaler) - def _calc_current_bits(self, current): - globalscaler = self.fields.get_field("globalscaler") - if not globalscaler: - globalscaler = 256 - cs = int((current * 256. * 32. * math.sqrt(2.) * self.sense_resistor) - / (globalscaler * VREF) - - 1. + .5) - return max(0, min(31, cs)) - def _calc_current(self, run_current, hold_current): - irun = self._calc_current_bits(run_current) - ihold = self._calc_current_bits(min(hold_current, run_current)) - return irun, ihold - def _calc_current_from_field(self, field_name): - globalscaler = self.fields.get_field("globalscaler") - if not globalscaler: - globalscaler = 256 - bits = self.fields.get_field(field_name) - return (globalscaler * (bits + 1) * VREF - / (256. * 32. * math.sqrt(2.) * self.sense_resistor)) - def get_current(self): - run_current = self._calc_current_from_field("irun") - hold_current = self._calc_current_from_field("ihold") - return run_current, hold_current, self.req_hold_current, MAX_CURRENT - def set_current(self, run_current, hold_current, print_time): - self.req_hold_current = hold_current - irun, ihold = self._calc_current(run_current, hold_current) - self.fields.set_field("ihold", ihold) - val = self.fields.set_field("irun", irun) - self.mcu_tmc.set_register("IHOLD_IRUN", val, print_time) - - -###################################################################### -# TMC5160 printer object -###################################################################### - -class TMC5160: - def __init__(self, config): - # Setup mcu communication - self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) - self.mcu_tmc = tmc2130.MCU_TMC_SPI(config, Registers, self.fields) - # Allow virtual pins to be created - tmc.TMCVirtualPinHelper(config, self.mcu_tmc) - # Register commands - current_helper = TMC5160CurrentHelper(config, self.mcu_tmc) - cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) - cmdhelper.setup_register_dump(ReadRegisters) - self.get_phase_offset = cmdhelper.get_phase_offset - self.get_status = cmdhelper.get_status - # Setup basic register values - tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) - # CHOPCONF - set_config_field = self.fields.set_config_field - set_config_field(config, "toff", 3) - set_config_field(config, "hstrt", 5) - set_config_field(config, "hend", 2) - set_config_field(config, "fd3", 0) - set_config_field(config, "disfdcc", 0) - set_config_field(config, "chm", 0) - set_config_field(config, "tbl", 2) - set_config_field(config, "vhighfs", 0) - set_config_field(config, "vhighchm", 0) - set_config_field(config, "tpfd", 4) - set_config_field(config, "diss2g", 0) - set_config_field(config, "diss2vs", 0) - # COOLCONF - set_config_field(config, "semin", 0) # page 52 - set_config_field(config, "seup", 0) - set_config_field(config, "semax", 0) - set_config_field(config, "sedn", 0) - set_config_field(config, "seimin", 0) - set_config_field(config, "sgt", 0) - set_config_field(config, "sfilt", 0) - # IHOLDIRUN - set_config_field(config, "iholddelay", 6) - # PWMCONF - set_config_field(config, "pwm_ofs", 30) - set_config_field(config, "pwm_grad", 0) - set_config_field(config, "pwm_freq", 0) - set_config_field(config, "pwm_autoscale", True) - set_config_field(config, "pwm_autograd", True) - set_config_field(config, "freewheel", 0) - set_config_field(config, "pwm_reg", 4) - set_config_field(config, "pwm_lim", 12) - # TPOWERDOWN - set_config_field(config, "tpowerdown", 10) - -def load_config_prefix(config): - return TMC5160(config) +# TMC5160 configuration +# +# Copyright (C) 2018-2019 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import math, logging +from . import bus, tmc, tmc2130 + +TMC_FREQUENCY=12000000. + +Registers = { + "GCONF": 0x00, + "GSTAT": 0x01, + "IFCNT": 0x02, + "SLAVECONF": 0x03, + "IOIN": 0x04, + "X_COMPARE": 0x05, + "OTP_READ": 0x07, + "FACTORY_CONF": 0x08, + "SHORT_CONF": 0x09, + "DRV_CONF": 0x0A, + "GLOBALSCALER": 0x0B, + "OFFSET_READ": 0x0C, + "IHOLD_IRUN": 0x10, + "TPOWERDOWN": 0x11, + "TSTEP": 0x12, + "TPWMTHRS": 0x13, + "TCOOLTHRS": 0x14, + "THIGH": 0x15, + "RAMPMODE": 0x20, + "XACTUAL": 0x21, + "VACTUAL": 0x22, + "VSTART": 0x23, + "A1": 0x24, + "V1": 0x25, + "AMAX": 0x26, + "VMAX": 0x27, + "DMAX": 0x28, + "D1": 0x2A, + "VSTOP": 0x2B, + "TZEROWAIT": 0x2C, + "XTARGET": 0x2D, + "VDCMIN": 0x33, + "SW_MODE": 0x34, + "RAMP_STAT": 0x35, + "XLATCH": 0x36, + "ENCMODE": 0x38, + "X_ENC": 0x39, + "ENC_CONST": 0x3A, + "ENC_STATUS": 0x3B, + "ENC_LATCH": 0x3C, + "ENC_DEVIATION": 0x3D, + "MSLUT0": 0x60, + "MSLUT1": 0x61, + "MSLUT2": 0x62, + "MSLUT3": 0x63, + "MSLUT4": 0x64, + "MSLUT5": 0x65, + "MSLUT6": 0x66, + "MSLUT7": 0x67, + "MSLUTSEL": 0x68, + "MSLUTSTART": 0x69, + "MSCNT": 0x6A, + "MSCURACT": 0x6B, + "CHOPCONF": 0x6C, + "COOLCONF": 0x6D, + "DCCTRL": 0x6E, + "DRV_STATUS": 0x6F, + "PWMCONF": 0x70, + "PWM_SCALE": 0x71, + "PWM_AUTO": 0x72, + "LOST_STEPS": 0x73, +} + +ReadRegisters = [ + "GCONF", "CHOPCONF", "GSTAT", "DRV_STATUS", "FACTORY_CONF", "IOIN", + "LOST_STEPS", "MSCNT", "MSCURACT", "OTP_READ", "PWM_SCALE", + "PWM_AUTO", "TSTEP" +] + +Fields = {} +Fields["COOLCONF"] = { + "semin": 0x0F << 0, + "seup": 0x03 << 5, + "semax": 0x0F << 8, + "sedn": 0x03 << 13, + "seimin": 0x01 << 15, + "sgt": 0x7F << 16, + "sfilt": 0x01 << 24 +} +Fields["CHOPCONF"] = { + "toff": 0x0F << 0, + "hstrt": 0x07 << 4, + "hend": 0x0F << 7, + "fd3": 0x01 << 11, + "disfdcc": 0x01 << 12, + "chm": 0x01 << 14, + "tbl": 0x03 << 15, + "vhighfs": 0x01 << 18, + "vhighchm": 0x01 << 19, + "tpfd": 0x0F << 20, # midrange resonances + "mres": 0x0F << 24, + "intpol": 0x01 << 28, + "dedge": 0x01 << 29, + "diss2g": 0x01 << 30, + "diss2vs": 0x01 << 31 +} +Fields["DRV_CONF"] = { + "bbmtime": 0x1F << 0, + "bbmclks": 0x0F << 8, + "otselect": 0x03 << 16, + "drvstrength": 0x03 << 18, + "filt_isense": 0x03 << 20, +} +Fields["DRV_STATUS"] = { + "sg_result": 0x3FF << 0, + "s2vsa": 0x01 << 12, + "s2vsb": 0x01 << 13, + "stealth": 0x01 << 14, + "fsactive": 0x01 << 15, + "csactual": 0xFF << 16, + "stallguard": 0x01 << 24, + "ot": 0x01 << 25, + "otpw": 0x01 << 26, + "s2ga": 0x01 << 27, + "s2gb": 0x01 << 28, + "ola": 0x01 << 29, + "olb": 0x01 << 30, + "stst": 0x01 << 31 +} +Fields["FACTORY_CONF"] = { + "factory_conf": 0x1F << 0 +} +Fields["GCONF"] = { + "recalibrate": 0x01 << 0, + "faststandstill": 0x01 << 1, + "en_pwm_mode": 0x01 << 2, + "multistep_filt": 0x01 << 3, + "shaft": 0x01 << 4, + "diag0_error": 0x01 << 5, + "diag0_otpw": 0x01 << 6, + "diag0_stall": 0x01 << 7, + "diag1_stall": 0x01 << 8, + "diag1_index": 0x01 << 9, + "diag1_onstate": 0x01 << 10, + "diag1_steps_skipped": 0x01 << 11, + "diag0_int_pushpull": 0x01 << 12, + "diag1_poscomp_pushpull": 0x01 << 13, + "small_hysteresis": 0x01 << 14, + "stop_enable": 0x01 << 15, + "direct_mode": 0x01 << 16, + "test_mode": 0x01 << 17 +} +Fields["GSTAT"] = { + "reset": 0x01 << 0, + "drv_err": 0x01 << 1, + "uv_cp": 0x01 << 2 +} +Fields["GLOBALSCALER"] = { + "globalscaler": 0xFF << 0 +} +Fields["IHOLD_IRUN"] = { + "ihold": 0x1F << 0, + "irun": 0x1F << 8, + "iholddelay": 0x0F << 16 +} +Fields["IOIN"] = { + "refl_step": 0x01 << 0, + "refr_dir": 0x01 << 1, + "encb_dcen_cfg4": 0x01 << 2, + "enca_dcin_cfg5": 0x01 << 3, + "drv_enn": 0x01 << 4, + "enc_n_dco_cfg6": 0x01 << 5, + "sd_mode": 0x01 << 6, + "swcomp_in": 0x01 << 7, + "version": 0xFF << 24 +} +Fields["LOST_STEPS"] = { + "lost_steps": 0xfffff << 0 +} +Fields["MSLUT0"] = { "mslut0": 0xffffffff } +Fields["MSLUT1"] = { "mslut1": 0xffffffff } +Fields["MSLUT2"] = { "mslut2": 0xffffffff } +Fields["MSLUT3"] = { "mslut3": 0xffffffff } +Fields["MSLUT4"] = { "mslut4": 0xffffffff } +Fields["MSLUT5"] = { "mslut5": 0xffffffff } +Fields["MSLUT6"] = { "mslut6": 0xffffffff } +Fields["MSLUT7"] = { "mslut7": 0xffffffff } +Fields["MSLUTSEL"] = { + "x3": 0xFF << 24, + "x2": 0xFF << 16, + "x1": 0xFF << 8, + "w3": 0x03 << 6, + "w2": 0x03 << 4, + "w1": 0x03 << 2, + "w0": 0x03 << 0, +} +Fields["MSLUTSTART"] = { + "start_sin": 0xFF << 0, + "start_sin90": 0xFF << 16, +} +Fields["MSCNT"] = { + "mscnt": 0x3ff << 0 +} +Fields["MSCURACT"] = { + "cur_a": 0x1ff << 0, + "cur_b": 0x1ff << 16 +} +Fields["OTP_READ"] = { + "otp_fclktrim": 0x1f << 0, + "otp_s2_level": 0x01 << 5, + "otp_bbm": 0x01 << 6, + "otp_tbl": 0x01 << 7 +} +Fields["PWM_AUTO"] = { + "pwm_ofs_auto": 0xff << 0, + "pwm_grad_auto": 0xff << 16 +} +Fields["PWMCONF"] = { + "pwm_ofs": 0xFF << 0, + "pwm_grad": 0xFF << 8, + "pwm_freq": 0x03 << 16, + "pwm_autoscale": 0x01 << 18, + "pwm_autograd": 0x01 << 19, + "freewheel": 0x03 << 20, + "pwm_reg": 0x0F << 24, + "pwm_lim": 0x0F << 28 +} +Fields["PWM_SCALE"] = { + "pwm_scale_sum": 0xff << 0, + "pwm_scale_auto": 0x1ff << 16 +} +Fields["TPOWERDOWN"] = { + "tpowerdown": 0xff << 0 +} +Fields["TPWMTHRS"] = { + "tpwmthrs": 0xfffff << 0 +} +Fields["TCOOLTHRS"] = { + "tcoolthrs": 0xfffff << 0 +} +Fields["TSTEP"] = { + "tstep": 0xfffff << 0 +} + +SignedFields = ["cur_a", "cur_b", "sgt", "xactual", "vactual", "pwm_scale_auto"] + +FieldFormatters = dict(tmc2130.FieldFormatters) +FieldFormatters.update({ + "s2vsa": (lambda v: "1(ShortToSupply_A!)" if v else ""), + "s2vsb": (lambda v: "1(ShortToSupply_B!)" if v else ""), +}) + + +###################################################################### +# TMC stepper current config helper +###################################################################### + +VREF = 0.325 +MAX_CURRENT = 10.000 # Maximum dependent on board, but 10 is safe sanity check + +class TMC5160CurrentHelper: + def __init__(self, config, mcu_tmc): + self.printer = config.get_printer() + self.name = config.get_name().split()[-1] + self.mcu_tmc = mcu_tmc + self.fields = mcu_tmc.get_fields() + run_current = config.getfloat('run_current', + above=0., maxval=MAX_CURRENT) + hold_current = config.getfloat('hold_current', MAX_CURRENT, + above=0., maxval=MAX_CURRENT) + self.req_hold_current = hold_current + self.sense_resistor = config.getfloat('sense_resistor', 0.075, above=0.) + gscaler, irun, ihold = self._calc_current(run_current, hold_current) + self.fields.set_field("globalscaler", gscaler) + self.fields.set_field("ihold", ihold) + self.fields.set_field("irun", irun) + def _calc_globalscaler(self, current): + globalscaler = int((current * 256. * math.sqrt(2.) + * self.sense_resistor / VREF) + .5) + globalscaler = max(32, globalscaler) + if globalscaler >= 256: + globalscaler = 0 + return globalscaler + def _calc_current_bits(self, current, globalscaler): + if not globalscaler: + globalscaler = 256 + cs = int((current * 256. * 32. * math.sqrt(2.) * self.sense_resistor) + / (globalscaler * VREF) + - 1. + .5) + return max(0, min(31, cs)) + def _calc_current(self, run_current, hold_current): + gscaler = self._calc_globalscaler(run_current) + irun = self._calc_current_bits(run_current, gscaler) + ihold = self._calc_current_bits(min(hold_current, run_current), gscaler) + return gscaler, irun, ihold + def _calc_current_from_field(self, field_name): + globalscaler = self.fields.get_field("globalscaler") + if not globalscaler: + globalscaler = 256 + bits = self.fields.get_field(field_name) + return (globalscaler * (bits + 1) * VREF + / (256. * 32. * math.sqrt(2.) * self.sense_resistor)) + def get_current(self): + run_current = self._calc_current_from_field("irun") + hold_current = self._calc_current_from_field("ihold") + return run_current, hold_current, self.req_hold_current, MAX_CURRENT + def set_current(self, run_current, hold_current, print_time): + self.req_hold_current = hold_current + gscaler, irun, ihold = self._calc_current(run_current, hold_current) + val = self.fields.set_field("globalscaler", gscaler) + self.mcu_tmc.set_register("GLOBALSCALER", val, print_time) + self.fields.set_field("ihold", ihold) + val = self.fields.set_field("irun", irun) + self.mcu_tmc.set_register("IHOLD_IRUN", val, print_time) + + +###################################################################### +# TMC5160 printer object +###################################################################### + +class TMC5160: + def __init__(self, config): + # Setup mcu communication + self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters) + self.mcu_tmc = tmc2130.MCU_TMC_SPI(config, Registers, self.fields, + TMC_FREQUENCY) + # Allow virtual pins to be created + tmc.TMCVirtualPinHelper(config, self.mcu_tmc) + # Register commands + current_helper = TMC5160CurrentHelper(config, self.mcu_tmc) + cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc, current_helper) + cmdhelper.setup_register_dump(ReadRegisters) + self.get_phase_offset = cmdhelper.get_phase_offset + self.get_status = cmdhelper.get_status + # Setup basic register values + tmc.TMCWaveTableHelper(config, self.mcu_tmc) + tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) + set_config_field = self.fields.set_config_field + # GCONF + set_config_field(config, "multistep_filt", True) + # CHOPCONF + set_config_field(config, "toff", 3) + set_config_field(config, "hstrt", 5) + set_config_field(config, "hend", 2) + set_config_field(config, "fd3", 0) + set_config_field(config, "disfdcc", 0) + set_config_field(config, "chm", 0) + set_config_field(config, "tbl", 2) + set_config_field(config, "vhighfs", 0) + set_config_field(config, "vhighchm", 0) + set_config_field(config, "tpfd", 4) + set_config_field(config, "diss2g", 0) + set_config_field(config, "diss2vs", 0) + # COOLCONF + set_config_field(config, "semin", 0) # page 52 + set_config_field(config, "seup", 0) + set_config_field(config, "semax", 0) + set_config_field(config, "sedn", 0) + set_config_field(config, "seimin", 0) + set_config_field(config, "sgt", 0) + set_config_field(config, "sfilt", 0) + # DRV_CONF + set_config_field(config, "drvstrength", 0) + set_config_field(config, "bbmclks", 4) + set_config_field(config, "bbmtime", 0) + set_config_field(config, "filt_isense", 0) + # IHOLDIRUN + set_config_field(config, "iholddelay", 6) + # PWMCONF + set_config_field(config, "pwm_ofs", 30) + set_config_field(config, "pwm_grad", 0) + set_config_field(config, "pwm_freq", 0) + set_config_field(config, "pwm_autoscale", True) + set_config_field(config, "pwm_autograd", True) + set_config_field(config, "freewheel", 0) + set_config_field(config, "pwm_reg", 4) + set_config_field(config, "pwm_lim", 12) + # TPOWERDOWN + set_config_field(config, "tpowerdown", 10) + +def load_config_prefix(config): + return TMC5160(config) diff --git a/klippy/extras/tmc_uart.py b/klippy/extras/tmc_uart.py index fe51303..3c0aa40 100644 --- a/klippy/extras/tmc_uart.py +++ b/klippy/extras/tmc_uart.py @@ -1,252 +1,255 @@ -# Helper code for communicating with TMC stepper drivers via UART -# -# Copyright (C) 2018-2021 Kevin O'Connor -# -# This file may be distributed under the terms of the GNU GPLv3 license. -import logging - - -###################################################################### -# TMC uart analog mux support -###################################################################### - -class MCU_analog_mux: - def __init__(self, mcu, cmd_queue, select_pins_desc): - self.mcu = mcu - self.cmd_queue = cmd_queue - ppins = mcu.get_printer().lookup_object("pins") - select_pin_params = [ppins.lookup_pin(spd, can_invert=True) - for spd in select_pins_desc] - self.oids = [self.mcu.create_oid() for pp in select_pin_params] - self.pins = [pp['pin'] for pp in select_pin_params] - self.pin_values = tuple([-1 for pp in select_pin_params]) - for oid, pin in zip(self.oids, self.pins): - self.mcu.add_config_cmd("config_digital_out oid=%d pin=%s" - " value=0 default_value=0 max_duration=0" - % (oid, pin)) - self.update_pin_cmd = None - self.mcu.register_config_callback(self.build_config) - def build_config(self): - self.update_pin_cmd = self.mcu.lookup_command( - "update_digital_out oid=%c value=%c", cq=self.cmd_queue) - def get_instance_id(self, select_pins_desc): - ppins = self.mcu.get_printer().lookup_object("pins") - select_pin_params = [ppins.parse_pin(spd, can_invert=True) - for spd in select_pins_desc] - for pin_params in select_pin_params: - if pin_params['chip'] != self.mcu: - raise self.mcu.get_printer().config_error( - "TMC mux pins must be on the same mcu") - pins = [pp['pin'] for pp in select_pin_params] - if pins != self.pins: - raise self.mcu.get_printer().config_error( - "All TMC mux instances must use identical pins") - return tuple([not pp['invert'] for pp in select_pin_params]) - def activate(self, instance_id): - for oid, old, new in zip(self.oids, self.pin_values, instance_id): - if old != new: - self.update_pin_cmd.send([oid, new]) - self.pin_values = instance_id - - -###################################################################### -# TMC uart communication -###################################################################### - -# Share mutexes so only one active tmc_uart command on a single mcu at -# a time. This helps limit cpu usage on slower micro-controllers. -class PrinterTMCUartMutexes: - def __init__(self): - self.mcu_to_mutex = {} -def lookup_tmc_uart_mutex(mcu): - printer = mcu.get_printer() - pmutexes = printer.lookup_object('tmc_uart', None) - if pmutexes is None: - pmutexes = PrinterTMCUartMutexes() - printer.add_object('tmc_uart', pmutexes) - mutex = pmutexes.mcu_to_mutex.get(mcu) - if mutex is None: - mutex = printer.get_reactor().mutex() - pmutexes.mcu_to_mutex[mcu] = mutex - return mutex - -TMC_BAUD_RATE = 40000 -TMC_BAUD_RATE_AVR = 9000 - -# Code for sending messages on a TMC uart -class MCU_TMC_uart_bitbang: - def __init__(self, rx_pin_params, tx_pin_params, select_pins_desc): - self.mcu = rx_pin_params['chip'] - self.mutex = lookup_tmc_uart_mutex(self.mcu) - self.pullup = rx_pin_params['pullup'] - self.rx_pin = rx_pin_params['pin'] - self.tx_pin = tx_pin_params['pin'] - self.oid = self.mcu.create_oid() - self.cmd_queue = self.mcu.alloc_command_queue() - self.analog_mux = None - if select_pins_desc is not None: - self.analog_mux = MCU_analog_mux(self.mcu, self.cmd_queue, - select_pins_desc) - self.instances = {} - self.tmcuart_send_cmd = None - self.mcu.register_config_callback(self.build_config) - def build_config(self): - baud = TMC_BAUD_RATE - mcu_type = self.mcu.get_constants().get("MCU", "") - if mcu_type.startswith("atmega") or mcu_type.startswith("at90usb"): - baud = TMC_BAUD_RATE_AVR - bit_ticks = self.mcu.seconds_to_clock(1. / baud) - self.mcu.add_config_cmd( - "config_tmcuart oid=%d rx_pin=%s pull_up=%d tx_pin=%s bit_time=%d" - % (self.oid, self.rx_pin, self.pullup, self.tx_pin, bit_ticks)) - self.tmcuart_send_cmd = self.mcu.lookup_query_command( - "tmcuart_send oid=%c write=%*s read=%c", - "tmcuart_response oid=%c read=%*s", oid=self.oid, - cq=self.cmd_queue, is_async=True) - def register_instance(self, rx_pin_params, tx_pin_params, - select_pins_desc, addr): - if (rx_pin_params['pin'] != self.rx_pin - or tx_pin_params['pin'] != self.tx_pin - or (select_pins_desc is None) != (self.analog_mux is None)): - raise self.mcu.get_printer().config_error( - "Shared TMC uarts must use the same pins") - instance_id = None - if self.analog_mux is not None: - instance_id = self.analog_mux.get_instance_id(select_pins_desc) - if (instance_id, addr) in self.instances: - raise self.mcu.get_printer().config_error( - "Shared TMC uarts need unique address or select_pins polarity") - self.instances[(instance_id, addr)] = True - return instance_id - def _calc_crc8(self, data): - # Generate a CRC8-ATM value for a bytearray - crc = 0 - for b in data: - for i in range(8): - if (crc >> 7) ^ (b & 0x01): - crc = (crc << 1) ^ 0x07 - else: - crc = (crc << 1) - crc &= 0xff - b >>= 1 - return crc - def _add_serial_bits(self, data): - # Add serial start and stop bits to a message in a bytearray - out = 0 - pos = 0 - for d in data: - b = (d << 1) | 0x200 - out |= (b << pos) - pos += 10 - res = bytearray() - for i in range((pos+7)//8): - res.append((out >> (i*8)) & 0xff) - return res - def _encode_read(self, sync, addr, reg): - # Generate a uart read register message - msg = bytearray([sync, addr, reg]) - msg.append(self._calc_crc8(msg)) - return self._add_serial_bits(msg) - def _encode_write(self, sync, addr, reg, val): - # Generate a uart write register message - msg = bytearray([sync, addr, reg, (val >> 24) & 0xff, - (val >> 16) & 0xff, (val >> 8) & 0xff, val & 0xff]) - msg.append(self._calc_crc8(msg)) - return self._add_serial_bits(msg) - def _decode_read(self, reg, data): - # Extract a uart read response message - if len(data) != 10: - return None - # Convert data into a long integer for easy manipulation - mval = pos = 0 - for d in bytearray(data): - mval |= d << pos - pos += 8 - # Extract register value - val = ((((mval >> 31) & 0xff) << 24) | (((mval >> 41) & 0xff) << 16) - | (((mval >> 51) & 0xff) << 8) | ((mval >> 61) & 0xff)) - # Verify start/stop bits and crc - encoded_data = self._encode_write(0x05, 0xff, reg, val) - if data != encoded_data: - return None - return val - def reg_read(self, instance_id, addr, reg): - if self.analog_mux is not None: - self.analog_mux.activate(instance_id) - msg = self._encode_read(0xf5, addr, reg) - params = self.tmcuart_send_cmd.send([self.oid, msg, 10]) - return self._decode_read(reg, params['read']) - def reg_write(self, instance_id, addr, reg, val, print_time=None): - minclock = 0 - if print_time is not None: - minclock = self.mcu.print_time_to_clock(print_time) - if self.analog_mux is not None: - self.analog_mux.activate(instance_id) - msg = self._encode_write(0xf5, addr, reg | 0x80, val) - self.tmcuart_send_cmd.send([self.oid, msg, 0], minclock=minclock) - -# Lookup a (possibly shared) tmc uart -def lookup_tmc_uart_bitbang(config, max_addr): - ppins = config.get_printer().lookup_object("pins") - rx_pin_params = ppins.lookup_pin(config.get('uart_pin'), can_pullup=True, - share_type="tmc_uart_rx") - tx_pin_desc = config.get('tx_pin', None) - if tx_pin_desc is None: - tx_pin_params = rx_pin_params - else: - tx_pin_params = ppins.lookup_pin(tx_pin_desc, share_type="tmc_uart_tx") - if rx_pin_params['chip'] is not tx_pin_params['chip']: - raise ppins.error("TMC uart rx and tx pins must be on the same mcu") - select_pins_desc = config.getlist('select_pins', None) - addr = config.getint('uart_address', 0, minval=0, maxval=max_addr) - mcu_uart = rx_pin_params.get('class') - if mcu_uart is None: - mcu_uart = MCU_TMC_uart_bitbang(rx_pin_params, tx_pin_params, - select_pins_desc) - rx_pin_params['class'] = mcu_uart - instance_id = mcu_uart.register_instance(rx_pin_params, tx_pin_params, - select_pins_desc, addr) - return instance_id, addr, mcu_uart - -# Helper code for communicating via TMC uart -class MCU_TMC_uart: - def __init__(self, config, name_to_reg, fields, max_addr=0): - self.printer = config.get_printer() - self.name = config.get_name().split()[-1] - self.name_to_reg = name_to_reg - self.fields = fields - self.ifcnt = None - self.instance_id, self.addr, self.mcu_uart = lookup_tmc_uart_bitbang( - config, max_addr) - self.mutex = self.mcu_uart.mutex - def get_fields(self): - return self.fields - def _do_get_register(self, reg_name): - reg = self.name_to_reg[reg_name] - if self.printer.get_start_args().get('debugoutput') is not None: - return 0 - for retry in range(5): - val = self.mcu_uart.reg_read(self.instance_id, self.addr, reg) - if val is not None: - return val - raise self.printer.command_error( - "Unable to read tmc uart '%s' register %s" % (self.name, reg_name)) - def get_register(self, reg_name): - with self.mutex: - return self._do_get_register(reg_name) - def set_register(self, reg_name, val, print_time=None): - reg = self.name_to_reg[reg_name] - if self.printer.get_start_args().get('debugoutput') is not None: - return - with self.mutex: - for retry in range(5): - ifcnt = self.ifcnt - if ifcnt is None: - self.ifcnt = ifcnt = self._do_get_register("IFCNT") - self.mcu_uart.reg_write(self.instance_id, self.addr, reg, val, - print_time) - self.ifcnt = self._do_get_register("IFCNT") - if self.ifcnt == (ifcnt + 1) & 0xff: - return - raise self.printer.command_error( - "Unable to write tmc uart '%s' register %s" % (self.name, reg_name)) +# Helper code for communicating with TMC stepper drivers via UART +# +# Copyright (C) 2018-2021 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import logging + + +###################################################################### +# TMC uart analog mux support +###################################################################### + +class MCU_analog_mux: + def __init__(self, mcu, cmd_queue, select_pins_desc): + self.mcu = mcu + self.cmd_queue = cmd_queue + ppins = mcu.get_printer().lookup_object("pins") + select_pin_params = [ppins.lookup_pin(spd, can_invert=True) + for spd in select_pins_desc] + self.oids = [self.mcu.create_oid() for pp in select_pin_params] + self.pins = [pp['pin'] for pp in select_pin_params] + self.pin_values = tuple([-1 for pp in select_pin_params]) + for oid, pin in zip(self.oids, self.pins): + self.mcu.add_config_cmd("config_digital_out oid=%d pin=%s" + " value=0 default_value=0 max_duration=0" + % (oid, pin)) + self.update_pin_cmd = None + self.mcu.register_config_callback(self.build_config) + def build_config(self): + self.update_pin_cmd = self.mcu.lookup_command( + "update_digital_out oid=%c value=%c", cq=self.cmd_queue) + def get_instance_id(self, select_pins_desc): + ppins = self.mcu.get_printer().lookup_object("pins") + select_pin_params = [ppins.parse_pin(spd, can_invert=True) + for spd in select_pins_desc] + for pin_params in select_pin_params: + if pin_params['chip'] != self.mcu: + raise self.mcu.get_printer().config_error( + "TMC mux pins must be on the same mcu") + pins = [pp['pin'] for pp in select_pin_params] + if pins != self.pins: + raise self.mcu.get_printer().config_error( + "All TMC mux instances must use identical pins") + return tuple([not pp['invert'] for pp in select_pin_params]) + def activate(self, instance_id): + for oid, old, new in zip(self.oids, self.pin_values, instance_id): + if old != new: + self.update_pin_cmd.send([oid, new]) + self.pin_values = instance_id + + +###################################################################### +# TMC uart communication +###################################################################### + +# Share mutexes so only one active tmc_uart command on a single mcu at +# a time. This helps limit cpu usage on slower micro-controllers. +class PrinterTMCUartMutexes: + def __init__(self): + self.mcu_to_mutex = {} +def lookup_tmc_uart_mutex(mcu): + printer = mcu.get_printer() + pmutexes = printer.lookup_object('tmc_uart', None) + if pmutexes is None: + pmutexes = PrinterTMCUartMutexes() + printer.add_object('tmc_uart', pmutexes) + mutex = pmutexes.mcu_to_mutex.get(mcu) + if mutex is None: + mutex = printer.get_reactor().mutex() + pmutexes.mcu_to_mutex[mcu] = mutex + return mutex + +TMC_BAUD_RATE = 40000 +TMC_BAUD_RATE_AVR = 9000 + +# Code for sending messages on a TMC uart +class MCU_TMC_uart_bitbang: + def __init__(self, rx_pin_params, tx_pin_params, select_pins_desc): + self.mcu = rx_pin_params['chip'] + self.mutex = lookup_tmc_uart_mutex(self.mcu) + self.pullup = rx_pin_params['pullup'] + self.rx_pin = rx_pin_params['pin'] + self.tx_pin = tx_pin_params['pin'] + self.oid = self.mcu.create_oid() + self.cmd_queue = self.mcu.alloc_command_queue() + self.analog_mux = None + if select_pins_desc is not None: + self.analog_mux = MCU_analog_mux(self.mcu, self.cmd_queue, + select_pins_desc) + self.instances = {} + self.tmcuart_send_cmd = None + self.mcu.register_config_callback(self.build_config) + def build_config(self): + baud = TMC_BAUD_RATE + mcu_type = self.mcu.get_constants().get("MCU", "") + if mcu_type.startswith("atmega") or mcu_type.startswith("at90usb"): + baud = TMC_BAUD_RATE_AVR + bit_ticks = self.mcu.seconds_to_clock(1. / baud) + self.mcu.add_config_cmd( + "config_tmcuart oid=%d rx_pin=%s pull_up=%d tx_pin=%s bit_time=%d" + % (self.oid, self.rx_pin, self.pullup, self.tx_pin, bit_ticks)) + self.tmcuart_send_cmd = self.mcu.lookup_query_command( + "tmcuart_send oid=%c write=%*s read=%c", + "tmcuart_response oid=%c read=%*s", oid=self.oid, + cq=self.cmd_queue, is_async=True) + def register_instance(self, rx_pin_params, tx_pin_params, + select_pins_desc, addr): + if (rx_pin_params['pin'] != self.rx_pin + or tx_pin_params['pin'] != self.tx_pin + or (select_pins_desc is None) != (self.analog_mux is None)): + raise self.mcu.get_printer().config_error( + "Shared TMC uarts must use the same pins") + instance_id = None + if self.analog_mux is not None: + instance_id = self.analog_mux.get_instance_id(select_pins_desc) + if (instance_id, addr) in self.instances: + raise self.mcu.get_printer().config_error( + "Shared TMC uarts need unique address or select_pins polarity") + self.instances[(instance_id, addr)] = True + return instance_id + def _calc_crc8(self, data): + # Generate a CRC8-ATM value for a bytearray + crc = 0 + for b in data: + for i in range(8): + if (crc >> 7) ^ (b & 0x01): + crc = (crc << 1) ^ 0x07 + else: + crc = (crc << 1) + crc &= 0xff + b >>= 1 + return crc + def _add_serial_bits(self, data): + # Add serial start and stop bits to a message in a bytearray + out = 0 + pos = 0 + for d in data: + b = (d << 1) | 0x200 + out |= (b << pos) + pos += 10 + res = bytearray() + for i in range((pos+7)//8): + res.append((out >> (i*8)) & 0xff) + return res + def _encode_read(self, sync, addr, reg): + # Generate a uart read register message + msg = bytearray([sync, addr, reg]) + msg.append(self._calc_crc8(msg)) + return self._add_serial_bits(msg) + def _encode_write(self, sync, addr, reg, val): + # Generate a uart write register message + msg = bytearray([sync, addr, reg, (val >> 24) & 0xff, + (val >> 16) & 0xff, (val >> 8) & 0xff, val & 0xff]) + msg.append(self._calc_crc8(msg)) + return self._add_serial_bits(msg) + def _decode_read(self, reg, data): + # Extract a uart read response message + if len(data) != 10: + return None + # Convert data into a long integer for easy manipulation + mval = pos = 0 + for d in bytearray(data): + mval |= d << pos + pos += 8 + # Extract register value + val = ((((mval >> 31) & 0xff) << 24) | (((mval >> 41) & 0xff) << 16) + | (((mval >> 51) & 0xff) << 8) | ((mval >> 61) & 0xff)) + # Verify start/stop bits and crc + encoded_data = self._encode_write(0x05, 0xff, reg, val) + if data != encoded_data: + return None + return val + def reg_read(self, instance_id, addr, reg): + if self.analog_mux is not None: + self.analog_mux.activate(instance_id) + msg = self._encode_read(0xf5, addr, reg) + params = self.tmcuart_send_cmd.send([self.oid, msg, 10]) + return self._decode_read(reg, params['read']) + def reg_write(self, instance_id, addr, reg, val, print_time=None): + minclock = 0 + if print_time is not None: + minclock = self.mcu.print_time_to_clock(print_time) + if self.analog_mux is not None: + self.analog_mux.activate(instance_id) + msg = self._encode_write(0xf5, addr, reg | 0x80, val) + self.tmcuart_send_cmd.send([self.oid, msg, 0], minclock=minclock) + +# Lookup a (possibly shared) tmc uart +def lookup_tmc_uart_bitbang(config, max_addr): + ppins = config.get_printer().lookup_object("pins") + rx_pin_params = ppins.lookup_pin(config.get('uart_pin'), can_pullup=True, + share_type="tmc_uart_rx") + tx_pin_desc = config.get('tx_pin', None) + if tx_pin_desc is None: + tx_pin_params = rx_pin_params + else: + tx_pin_params = ppins.lookup_pin(tx_pin_desc, share_type="tmc_uart_tx") + if rx_pin_params['chip'] is not tx_pin_params['chip']: + raise ppins.error("TMC uart rx and tx pins must be on the same mcu") + select_pins_desc = config.getlist('select_pins', None) + addr = config.getint('uart_address', 0, minval=0, maxval=max_addr) + mcu_uart = rx_pin_params.get('class') + if mcu_uart is None: + mcu_uart = MCU_TMC_uart_bitbang(rx_pin_params, tx_pin_params, + select_pins_desc) + rx_pin_params['class'] = mcu_uart + instance_id = mcu_uart.register_instance(rx_pin_params, tx_pin_params, + select_pins_desc, addr) + return instance_id, addr, mcu_uart + +# Helper code for communicating via TMC uart +class MCU_TMC_uart: + def __init__(self, config, name_to_reg, fields, max_addr, tmc_frequency): + self.printer = config.get_printer() + self.name = config.get_name().split()[-1] + self.name_to_reg = name_to_reg + self.fields = fields + self.ifcnt = None + self.instance_id, self.addr, self.mcu_uart = lookup_tmc_uart_bitbang( + config, max_addr) + self.mutex = self.mcu_uart.mutex + self.tmc_frequency = tmc_frequency + def get_fields(self): + return self.fields + def _do_get_register(self, reg_name): + reg = self.name_to_reg[reg_name] + if self.printer.get_start_args().get('debugoutput') is not None: + return 0 + for retry in range(5): + val = self.mcu_uart.reg_read(self.instance_id, self.addr, reg) + if val is not None: + return val + raise self.printer.command_error( + "Unable to read tmc uart '%s' register %s" % (self.name, reg_name)) + def get_register(self, reg_name): + with self.mutex: + return self._do_get_register(reg_name) + def set_register(self, reg_name, val, print_time=None): + reg = self.name_to_reg[reg_name] + if self.printer.get_start_args().get('debugoutput') is not None: + return + with self.mutex: + for retry in range(5): + ifcnt = self.ifcnt + if ifcnt is None: + self.ifcnt = ifcnt = self._do_get_register("IFCNT") + self.mcu_uart.reg_write(self.instance_id, self.addr, reg, val, + print_time) + self.ifcnt = self._do_get_register("IFCNT") + if self.ifcnt == (ifcnt + 1) & 0xff: + return + raise self.printer.command_error( + "Unable to write tmc uart '%s' register %s" % (self.name, reg_name)) + def get_tmc_frequency(self): + return self.tmc_frequency diff --git a/klippy/extras/tmc_uart.pyc b/klippy/extras/tmc_uart.pyc deleted file mode 100644 index 079bedec87c7fc2f9c36d2a0685996aec11cdfdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10820 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 TOwPSNS8vTAwN{@Sv`+mW`iVVg diff --git a/klippy/extras/tuning_tower.pyc b/klippy/extras/tuning_tower.pyc deleted file mode 100644 index 26d844a165373335ebc98a51ce4847324b5c4f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4496 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 Sz5PF8zDd(soNEOuU;GUmGZ{Mo diff --git a/klippy/extras/virtual_sdcard.py b/klippy/extras/virtual_sdcard.py index 4c019a0..fcb6718 100644 --- a/klippy/extras/virtual_sdcard.py +++ b/klippy/extras/virtual_sdcard.py @@ -30,6 +30,9 @@ class VirtualSD: gcode_macro = self.printer.load_object(config, 'gcode_macro') self.on_error_gcode = gcode_macro.load_template( config, 'on_error_gcode', '') + # power lose resume + self.lines = 0 + self.save_every_n_lines = 50 # Register commands self.gcode = self.printer.lookup_object('gcode') for cmd in ['M20', 'M21', 'M23', 'M24', 'M25', 'M26', 'M27']: @@ -120,6 +123,7 @@ class VirtualSD: self.do_pause() self.current_file.close() self.current_file = None + self.lines = 0 self.print_stats.note_cancel() self.file_position = self.file_size = 0. # G-Code commands @@ -232,16 +236,20 @@ class VirtualSD: partial_input = "" lines = [] error_message = None + plr_file = open("/home/mks/scripts/plr/plr_record", 'w', buffering=0) while not self.must_pause_work: if not lines: # Read more data try: data = self.current_file.read(8192) except: + plr_file.close() logging.exception("virtual_sdcard read") break if not data: # End of file + self.lines = 0 + plr_file.close() self.current_file.close() self.current_file = None logging.info("Finished SD card print") @@ -263,6 +271,13 @@ class VirtualSD: next_file_position = self.file_position + len(line) + 1 self.next_file_position = next_file_position try: + self.lines += 1 + if self.lines % self.save_every_n_lines == 0: + # temp = "SAVE_VARIABLE VARIABLE=gcode_lines VALUE=" + str(self.lines) + # self.gcode._process_commands([temp], need_ack=False) + plr_file.seek(0) + plr_file.write(str(self.lines)) + plr_file.truncate() self.gcode.run_script(line) except self.gcode.error as e: error_message = str(e) @@ -287,6 +302,7 @@ class VirtualSD: lines = [] partial_input = "" logging.info("Exiting SD card print (position %d)", self.file_position) + plr_file.close() self.work_timer = None self.cmd_from_sd = False if error_message is not None: @@ -296,6 +312,16 @@ class VirtualSD: else: self.print_stats.note_complete() return self.reactor.NEVER + # cmd_TOGGLE_PLR_help = "enable or disable power lose resume" + # def cmd_TOGGLE_PLR(self, gcmd): + # if self.plr_enable: + # self.plr_enable = False + # temp = "SAVE_VARIABLE VARIABLE=plr_enable VALUE=" + str(self.plr_enable) + # self.gcode._process_commands([temp], need_ack=False) + # gcmd.respond_raw("Power lose resume disabled") + # else: + # self.plr_enable = True + # gcmd.respond_raw("Power lose resume enabled") def load_config(config): return VirtualSD(config) diff --git a/klippy/extras/virtual_sdcard.pyc b/klippy/extras/virtual_sdcard.pyc deleted file mode 100644 index 7700608e450ae90899aa24ad151a71e41818c5c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12392 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 Pmv}!_7%NQv#+?5@U9y -# This file may be distributed under the terms of the GNU GPLv3 license. - -""" -[x_twist_compensation] -horizontal_move_z: 10 -speed: 50 -start_x: 0 ; nozzle's x coordinate at the start of the calibration ! required -end_x: 200 ; nozzle's x coordinate at the end of the calibration ! required -y: 100 ; nozzle's y coordinate during the calibration ! required -""" - -import logging -import math -from . import manual_probe as ManualProbe, bed_mesh as BedMesh - -DEFAULT_N_POINTS = 3 -DEFAULT_PROFILE_NAME = 'default' -BED_MESH_CONFIG_NAME = 'bed_mesh' - - -class Config: - # values stored in printer.cfg when a profile is saved - DEFAULT_SPEED = 50. - DEFAULT_HORIZONTAL_MOVE_Z = 10. - REQUIRED = True - OPTIONAL = False - CONFIG_OPTIONS = { - 'horizontal_move_z': (float, OPTIONAL, DEFAULT_HORIZONTAL_MOVE_Z), - 'speed': (float, OPTIONAL, DEFAULT_SPEED), - 'start_x': (float, REQUIRED, None), - 'end_x': (float, REQUIRED, None), - 'y': (float, REQUIRED, None) - } - - -class XTwistCompensation: - def __init__(self, config): - # get printer - self.printer = config.get_printer() - - # get values from [x_twist_compensation] section in printer .cfg - for config_key, \ - (config_type, required, default) in Config.CONFIG_OPTIONS.items(): - value = None - if config_type == float: - value = config.getfloat(config_key, default) - else: - value = config.get(config_key, default) - if required and value is None: - raise config.error( - "Missing required config option for section [{}]: {}" - .format(config.get_name(), config_key)) - setattr(self, config_key, value) - - # setup persistent storage - self.pmgr = ProfileManager(config, self) - - # setup calibrater - calibrater_config = { - 'horizontal_move_z': self.horizontal_move_z - if hasattr(self, 'horizontal_move_z') else None, - 'speed': self.speed if hasattr(self, 'speed') else None, - 'start_x': self.start_x if hasattr(self, 'start_x') else None, - 'end_x': self.end_x if hasattr(self, 'end_x') else None, - 'y': self.y if hasattr(self, 'y') else None - } - self.calibrater = Calibrater( - config, self.pmgr, calibrater_config) - - self.enabled = False - - # register gcode handlers - self._register_gcode_handlers() - - def _register_gcode_handlers(self): - # register gcode handlers - self.gcode = self.printer.lookup_object('gcode') - self.gcode.register_command( - 'X_TWIST_COMPENSATE_MESH', - self.cmd_X_TWIST_COMPENSATE_MESH, - desc=self.cmd_X_TWIST_COMPENSATE_MESH_help) - self.gcode.register_command( - 'X_TWIST_COMPENSATE_STATUS', - self.cmd_X_TWIST_COMPENSATE_STATUS, - desc=self.cmd_X_TWIST_COMPENSATE_STATUS_help) - - def get_z_compensation_value(self, x_coord, optional_profile_name=None): - # returns the (lineraly interpolated) z compensation value - # for the given x coordinate - # uses the current profile if optional_profile_name is not specified - enabled = self.pmgr.get_is_enabled() - if enabled or optional_profile_name is not None: - current_profile = \ - self.pmgr.get_current_profile() \ - if optional_profile_name is None \ - else self.pmgr.get_profile(optional_profile_name) - z_compensations = current_profile.z_compensations - n_points = len(z_compensations) - spacing = (self.end_x - self.start_x) / (n_points - 1) - interpolate_t = (x_coord - self.start_x) / spacing - interpolate_i = int(math.floor(interpolate_t)) - interpolate_i = BedMesh.constrain(interpolate_i, 0, n_points - 2) - interpolate_t -= interpolate_i - interpolated_z_compensation = BedMesh.lerp( - interpolate_t, z_compensations[interpolate_i], - z_compensations[interpolate_i + 1]) - return interpolated_z_compensation - else: - return 0 - - cmd_X_TWIST_COMPENSATE_MESH_help = \ - "Compensate a mesh by applying the x" \ - "twist compensation to the given raw mesh" - - def cmd_X_TWIST_COMPENSATE_MESH(self, gcmd): - # get the mesh name from the gcode command - raw_mesh_name = gcmd.get('MESH_NAME', None) - Helpers.check_non_empty_param(raw_mesh_name, gcmd, 'MESH_NAME') - - # get the compensation profile name from the gcode command - compensation_name = gcmd.get('COMPENSATION_NAME', None) - Helpers.check_non_empty_param( - compensation_name, gcmd, 'COMPENSATION_NAME') - - # get the bed_mesh object, then the bed_mesh profile manager - bed_mesh = self.printer.lookup_object('bed_mesh', None) - if not bed_mesh: - raise gcmd.error( - "[bed_mesh] is not specified in your printer configuration") - bed_mesh_pmgr = bed_mesh.pmgr - # load specified bed mesh as active bed mesh - bed_mesh_pmgr.load_profile(raw_mesh_name) - # get the active bed mesh - active_bed_mesh = bed_mesh.get_mesh() - # modify the probed matrix by applying the x twist compensation - #modified_probed_matrix = self._modify_probed_matrix( - # active_bed_mesh, compensation_name) - - enabled = self.pmgr.get_is_enabled() - if enabled or compensation_name is not None: - current_profile = \ - self.pmgr.get_current_profile() \ - if compensation_name is None \ - else self.pmgr.get_profile(compensation_name) - z_compensations = current_profile.z_compensations - modified_probed_matrix = self._modify_probed_matrix_XY(active_bed_mesh, z_compensations[0], z_compensations[1]) - - # update active mesh with modified probed matrix, save under new name - #compensated_mesh_name = \ - # raw_mesh_name + '_compensated_' + compensation_name - active_bed_mesh.build_mesh(modified_probed_matrix) - #bed_mesh_pmgr.save_profile(compensated_mesh_name) - bed_mesh_pmgr.save_profile(raw_mesh_name) - - def _modify_probed_matrix_XY(self, bed_mesh, xz, yz): - - probed_matrix = bed_mesh.get_probed_matrix() - compensated_matrix = [] - row_count = len(probed_matrix) - 1 - yz_step = yz / row_count - col_count = len(probed_matrix[0]) - 1 - xz_step = xz / col_count - - for row_index in range(len(probed_matrix)): - compensated_row = [] - row = probed_matrix[row_index] - for col_index in range(len(row)): - z = row[col_index] - compensated_z = z + (xz_step * col_index) + (yz_step * row_index) - compensated_row.append(compensated_z) - compensated_matrix.append(compensated_row) - - compensated_matrix = tuple(tuple(row) for row in compensated_matrix) - return compensated_matrix - - def _modify_probed_matrix(self, bed_mesh, compensation_profile_name): - # do compensating, by modifying z values in probed matrix - # probed matrix is a list of rows of probed z values - # eg. probed_matrix[0][0] = bottom left corner of mesh, z value - probed_matrix = bed_mesh.get_probed_matrix() - compensated_matrix = [] - for row_index in range(len(probed_matrix)): - compensated_row = [] - row = probed_matrix[row_index] - for col_index in range(len(row)): - z = row[col_index] - x_coord = self._get_mesh_point_x_coord(col_index, bed_mesh) - compensated_z = z + \ - self.get_z_compensation_value( - x_coord, compensation_profile_name) - compensated_row.append(compensated_z) - compensated_matrix.append(compensated_row) - # compensated_matrix is a list of list - # bed_mesh expects tuple of tuple hence convert - compensated_matrix = tuple(tuple(row) for row in compensated_matrix) - return compensated_matrix - - def _get_mesh_point_x_coord(self, col_index, mesh): - # returns the x coordinate of the given column index - # in the probed matrix - x_min = mesh.mesh_x_min - x_range = mesh.mesh_x_max - mesh.mesh_x_min - x_step = x_range / (len(mesh.probed_matrix[0]) - 1) - return x_min + col_index * x_step - - cmd_X_TWIST_COMPENSATE_STATUS_help = \ - "Get the status of the x twist compensation" - - def cmd_X_TWIST_COMPENSATE_STATUS(self, gcmd): - if (self.pmgr.get_is_enabled()): - profile = self.pmgr.get_current_profile() - profile_name = profile.name - profile_z_compensations = profile.z_compensations - profile_recommended_z_offset = profile.recommended_z_offset - gcmd.respond_info( - """ - X twist compensation is enabled - Profile name: {} - Profile z compensations: {} - Profile recommended z offset: {} - """.format(profile_name, - profile_z_compensations, profile_recommended_z_offset)) - else: - gcmd.respond_info( - "X twist compensation is disabled, "\ - "load a profile using X_TWIST_PROFILE_LOAD" - ) - - -class Calibrater: - def __init__(self, config, pmgr, calibrater_config): - # setup self attributes - self.printer = config.get_printer() - self.gcode = self.printer.lookup_object('gcode') - self.pmgr = pmgr - self.probe = None - # probe settings are set to none, until they are available - self.lift_speed, self.probe_x_offset, self.probe_y_offset, \ - self.stored_probe_z_offset = None, None, None, None - self.printer.register_event_handler("klippy:connect", - self._handle_connect(config)) - self.speed = calibrater_config['speed'] - self.horizontal_move_z = calibrater_config['horizontal_move_z'] - self.start_point = ( - calibrater_config['start_x'], calibrater_config['y']) - self.end_point = (calibrater_config['end_x'], calibrater_config['y']) - self.results = [] - self.current_point_index = None - self.gcmd = None - - # register gcode handlers - self._register_gcode_handlers() - - def _handle_connect(self, config): - # gets probe settings when they are available - def callback(): - self.probe = self.printer.lookup_object('probe', None) - if (self.probe is None): - raise config.error( - "X_TWIST_COMPENSATION requires [probe] to be defined") - self.lift_speed = self.probe.get_lift_speed() - self.probe_x_offset, self.probe_y_offset, \ - self.stored_probe_z_offset = self.probe.get_offsets() - return callback - - def _register_gcode_handlers(self): - # register gcode handlers - self.gcode = self.printer.lookup_object('gcode') - self.gcode.register_command( - 'X_TWIST_CALIBRATE', self.cmd_X_TWIST_CALIBRATE, - desc=self.cmd_X_TWIST_CALIBRATE_help) - - cmd_X_TWIST_CALIBRATE_help = """ - Performs the x twist calibration wizard - Measure z probe offset at n points along the x axis, - and calculate x twist compensation - Specify PROFILE_NAME= - optional, default is 'default' - """ - - def cmd_X_TWIST_CALIBRATE(self, gcmd): - self.gcmd = gcmd - # performs the x twist calibration wizard - # get params from command - profile_name = gcmd.get('PROFILE_NAME', DEFAULT_PROFILE_NAME) - n_points = gcmd.get_int('N_POINTS', DEFAULT_N_POINTS) - - # check for valid profile_name - Helpers.check_non_empty_param(profile_name, self.gcmd, 'PROFILE_NAME') - # check for valid n_points - if n_points is None or n_points < 3: - raise self.gcmd.error( - "N_POINTS to probe must be at least 3") - - # clear the current profile - self.pmgr.clear_profile() - - # calculate some values - x_range = self.end_point[0] - self.start_point[0] - interval_dist = x_range / (n_points - 1) - nozzle_points = self._calculate_nozzle_points(n_points, interval_dist) - probe_points = self._calculate_probe_points( - nozzle_points, self.probe_x_offset, self.probe_y_offset) - - # verify no other manual probe is in progress - ManualProbe.verify_no_manual_probe(self.printer) - - # begin calibration - self.current_point_index = 0 - self._calibration( - profile_name, probe_points, nozzle_points, interval_dist) - - def _calculate_nozzle_points(self, n_points, interval_dist): - # calculate the points to put the probe at, returned as a list of tuples - nozzle_points = [] - for i in range(n_points): - x = self.start_point[0] + i * interval_dist - y = self.start_point[1] - nozzle_points.append((x, y)) - return nozzle_points - - def _calculate_probe_points(self, nozzle_points, - probe_x_offset, probe_y_offset): - # calculate the points to put the nozzle at - # returned as a list of tuples - probe_points = [] - for point in nozzle_points: - x = point[0] - probe_x_offset - y = point[1] - probe_y_offset - probe_points.append((x, y)) - return probe_points - - def _move_helper(self, target_coordinates, override_speed=None): - # pad target coordinates - target_coordinates = \ - (target_coordinates[0], target_coordinates[1], None) \ - if len(target_coordinates) == 2 else target_coordinates - toolhead = self.printer.lookup_object('toolhead') - speed = self.speed if target_coordinates[2] == None else self.lift_speed - speed = override_speed if override_speed is not None else speed - toolhead.manual_move(target_coordinates, speed) - - def _calibration(self, profile_name, probe_points, nozzle_points, interval): - # begin the calibration process - self.gcmd.respond_info("X_TWIST_CALIBRATE: Probing point %d of %d" % ( - self.current_point_index + 1, len(probe_points))) - - # horizontal_move_z (to prevent probe trigger or hitting bed) - self._move_helper((None, None, self.horizontal_move_z)) - - # move to point to probe - self._move_helper((probe_points[self.current_point_index] - [0], probe_points[self.current_point_index][1], None)) - - # probe the point - self.probe.run_probe(self.gcmd) - - # horizontal_move_z (to prevent probe trigger or hitting bed) - self._move_helper((None, None, self.horizontal_move_z)) - - # move the nozzle over the probe point - self._move_helper((nozzle_points[self.current_point_index])) - - # start the manual (nozzle) probe - ManualProbe.ManualProbeHelper( - self.printer, self.gcmd, - self._manual_probe_callback_factory(profile_name, - probe_points, nozzle_points, interval)) - - def _manual_probe_callback_factory(self, profile_name, probe_points, - nozzle_points, interval): - # returns a callback function for the manual probe - is_end = self.current_point_index == len(probe_points) - 1 - - def callback(kin_pos): - if kin_pos is None: - # probe was cancelled - self.gcmd.respond_info( - "X_TWIST_CALIBRATE: Probe cancelled, calibration aborted") - return - z_offset = self.stored_probe_z_offset - kin_pos[2] - self.results.append(z_offset) - if is_end: - # end of calibration - self._finalize_calibration(profile_name) - else: - # move to next point - self.current_point_index += 1 - self._calibration( - profile_name, probe_points, nozzle_points, interval) - return callback - - def _finalize_calibration(self, profile_name): - # finalize the calibration process - # calculate average of results - avg = sum(self.results) / len(self.results) - # subtract average from each result - # so that they are independent of z_offset - self.results = [avg - x for x in self.results] - # create a new profile using profile manager - self.pmgr.create_profile(profile_name, self.results, avg) - # recommend z offset to user - self.gcmd.respond_info( - "X_TWIST_CALIBRATE: Calibration complete, reccomended z_offset: %f" - % (avg)) - - -class Profile: - PROFILE_OPTIONS = { - 'z_compensations': str, 'recommended_z_offset': float - } - - def __init__(self, name, z_compensations, recommended_z_offset): - self.name = name - self.z_compensations = z_compensations - self.recommended_z_offset = recommended_z_offset - - -class ProfileManager: - def __init__(self, config, x_twist_compensation): - # setup self attributes - self.name = config.get_name() - self.printer = config.get_printer() - self.x_twist_compensation = x_twist_compensation - self.profiles = {} - self.gcode = self.printer.lookup_object('gcode') - self.current_profile = None - - # fetch the stored profiles - self._fetch_stored_profiles(config) - logging.info('stored profiles: %s', self.profiles) - - # register gcode handlers - self._register_gcode_handlers() - - def get_is_enabled(self): - # returns - return self.current_profile is not None - - def get_current_profile(self): - # return the current profile - if self.current_profile is None: - raise self.gcode.error( - "No X_TWIST_PROFILE loaded") - return self.current_profile - - def get_profiles(self): - # dictionary of profiles loaded from printer.cfg, key is profile name - return self.profiles - - def get_profile(self, profile_name): - # attempt to get profile from self.profiles - # throws error if profile does not exist or is corrupt - logging.info('attempting to get profile name %s', profile_name) - logging.info('available profiles: %s', self.profiles) - profile = self.profiles.get(profile_name, None) - if profile is None: - raise self.gcode.error( - "X_TWIST_PROFILE %s does not exist" % (profile_name)) - z_compensations = profile.get('z_compensations', None) - if z_compensations is None: - raise self.gcode.error( - "X_TWIST_PROFILE %s does not have z_compensations" - % (profile_name)) - recommended_z_offset = profile.get('recommended_z_offset', None) - if recommended_z_offset is None: - raise self.gcode.error( - "X_TWIST_PROFILE %s does not have recommended_z_offset" - % (profile_name)) - return Profile(profile_name, z_compensations, recommended_z_offset) - - def _fetch_stored_profiles(self, config): - # fetch stored profiles in printer.cfg - # (using prefix of "x_twist_compensation"") - stored_profiles = config.get_prefix_sections(self.name) - stored_profiles = [ - stored_profile for stored_profile in stored_profiles - if stored_profile.get_name() != self.name - ] - # add stored profiles to self.profiles - for stored_profile in stored_profiles: - prefixed_name = stored_profile.get_name() - # remove prefix from name - name = prefixed_name.split(' ', 1)[1] - self.profiles[name] = {} - for option, option_type in Profile.PROFILE_OPTIONS.items(): - if option_type == float: - self.profiles[name][option] = stored_profile.getfloat( - option) - elif option_type == str: - value = stored_profile.get(option) - if option == 'z_compensations': - self.profiles[name][option] = \ - Helpers.parse_comma_separated_floats(value) - else: - self.profiles[name][option] = stored_profile.get( - option) - - def _register_gcode_handlers(self): - # register gcode handlers - self.gcode.register_command( - 'X_TWIST_PROFILE', self.cmd_X_TWIST_PROFILE, - desc=self.cmd_X_TWIST_PROFILE_help) - self.gcode.register_command( - 'X_TWIST_PROFILE_LOAD', self.cmd_X_TWIST_PROFILE_LOAD, - desc=self.cmd_X_TWIST_PROFILE_LOAD_help) - self.gcode.register_command( - 'X_TWIST_PROFILE_SAVE', self.cmd_X_TWIST_PROFILE_SAVE, - desc=self.cmd_X_TWIST_PROFILE_SAVE_help) - self.gcode.register_command( - 'X_TWIST_PROFILE_DELETE', self.cmd_X_TWIST_PROFILE_DELETE, - desc=self.cmd_X_TWIST_PROFILE_DELETE_help) - self.gcode.register_command( - 'X_TWIST_PROFILE_CLEAR', self.cmd_X_TWIST_PROFILE_CLEAR, - desc=self.cmd_X_TWIST_PROFILE_CLEAR_help) - - def create_profile(self, profile_name, z_compensations, - recommended_z_offset): - # create a new profile - new_profile = Profile( - profile_name, z_compensations, recommended_z_offset) - # save the profile - self._save_profile(new_profile) - - def load_profile(self, profile_name): - # set the current profile - self.current_profile = self.get_profile(profile_name) - - def clear_profile(self): - # clear the current profile - self.current_profile = None - - def delete_profile(self, profile_name): - # try getting the profile to ensure it exists - self.get_profile(profile_name) - # remove the profile from config file - configfile = self.printer.lookup_object('configfile') - configfile.remove_section('%s %s' % (self.name, profile_name)) - # remove the profile from self.profiles - profiles = dict(self.profiles) - del profiles[profile_name] - self.profiles = profiles - # inform user to save deletion - self.gcode.respond_info( - "Profile [%s] removed from storage for this session.\n" - "The SAVE_CONFIG command will update the printer\n" - "configuration and restart the printer" % (profile_name)) - - def _save_profile(self, profile): - profile_name = profile.name - config_name = '%s %s' % (self.name, profile_name) - configfile = self.printer.lookup_object('configfile') - # save the profile to config file - # also save to self.profiles, make sure immutable by making a copy - profiles = dict(self.profiles) - profiles[profile_name] = new_profile = {} - for option, option_type in Profile.PROFILE_OPTIONS.items(): - value = getattr(profile, option) - if option_type == float: - value = float(value) - new_profile[option] = value # save to self.profiles - configfile.set(config_name, option, - Helpers.format_float_to_n_decimals(value)) - elif option_type == str: - if option == 'z_compensations': - # convert to list of floats - value = [float(x) for x in value] - new_profile[option] = value # save to self.profiles - value_as_str = [Helpers.format_float_to_n_decimals( - x) for x in value] # convert to list of strs - configfile.set(config_name, option, ', '.join( - value_as_str)) # store as comma separated - else: - new_profile[option] = value # save to self.profiles - configfile.set(config_name, option, value) - # inform user to save changes - self.gcode.respond_info( - "X_TWIST_COMPENSATION state has been saved to profile [%s]\n" - "for the current session. The SAVE_CONFIG command will\n" - "update the printer config file and restart the printer." - % (profile_name)) - - def save_current_profile(self, profile_name): - # get the current profile - profile = self.get_current_profile() - # set the name - profile.name = profile_name - # save the profile - self._save_profile(profile) - - cmd_X_TWIST_PROFILE_LOAD_help = \ - "Loads a saved mesh as the active mesh" - - def cmd_X_TWIST_PROFILE_LOAD(self, gcmd): - # loads a saved mesh as the active mesh - profile_name = gcmd.get('NAME', None) - Helpers.check_non_empty_param(profile_name, gcmd, 'NAME') - self.load_profile(profile_name) - - cmd_X_TWIST_PROFILE_CLEAR_help = \ - "Clears the active mesh" - - def cmd_X_TWIST_PROFILE_CLEAR(self, gcmd): - # clears the active mesh - self.clear_profile() - - cmd_X_TWIST_PROFILE_SAVE_help = \ - "Saves the active mesh to the config file" - - def cmd_X_TWIST_PROFILE_SAVE(self, gcmd): - # saves the active mesh to the config file - profile_name = gcmd.get('NAME', None) - Helpers.check_non_empty_param(profile_name, gcmd, 'NAME') - self.save_current_profile(profile_name) - - cmd_X_TWIST_PROFILE_DELETE_help = \ - "Deletes a saved profile from the config file" - - def cmd_X_TWIST_PROFILE_DELETE(self, gcmd): - # deletes a saved mesh from the config file - profile_name = gcmd.get('NAME', None) - Helpers.check_non_empty_param(profile_name, gcmd, 'NAME') - self.delete_profile(profile_name) - - cmd_X_TWIST_PROFILE_help = \ - "Prints information on how to use the X_TWIST_PROFILE command" - - def cmd_X_TWIST_PROFILE(self, gcmd): - raise self.gcode.error( - """ - Please follow the following syntax: - X_TWIST_PROFILE_LOAD NAME= - X_TWIST_PROFILE_SAVE NAME= - X_TWIST_PROFILE_DELETE NAME= - X_TWIST_PROFILE_CLEAR - """ - ) - - -class Helpers: - @staticmethod - def format_float_to_n_decimals(raw_float, n=6): - # format float to n decimals, defaults to 6 - return "{:.{}f}".format(raw_float, n) - - @staticmethod - def parse_comma_separated_floats(comma_separated_floats): - # parse comma separated floats into list of floats - return [float(value) for value in comma_separated_floats.split(', ')] - - @staticmethod - def check_non_empty_param(param_str, gcmd, param_name=None): - # throws gcmd error if parameter is None or just spaces - if param_str is None or not param_str.strip(): - error = "Parameter [%s] is required" % ( - param_name) if param_name else "Parameter is required" - raise gcmd.error(error) - -# klipper's entry point using [x_twist_compensation] section in printer.cfg - - -def load_config(config): - return XTwistCompensation(config) \ No newline at end of file diff --git a/klippy/extras/x_twist_compensation.pyc b/klippy/extras/x_twist_compensation.pyc deleted file mode 100644 index c5813f5f550e89f6c45cb662d8a9ddbcd139dd67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22006 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
  1. 6Wr($XNXuSJYucHBD>%X7*qU?QOpK?%PGV(M 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 T`H{hqua10nWY@^INA~?6OR-u# diff --git a/klippy/extras/z_tilt.pyc b/klippy/extras/z_tilt.pyc deleted file mode 100644 index 3129018d327ecf4009cc082722fe3c8a123d28cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8694 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 Vl>ctPBI>L=_rl!l+|zT<{TJ@_!bJc8 diff --git a/klippy/gcode.py b/klippy/gcode.py index e4f6df5..5b87832 100644 --- a/klippy/gcode.py +++ b/klippy/gcode.py @@ -9,6 +9,11 @@ class CommandError(Exception): pass Coord = collections.namedtuple('Coord', ('x', 'y', 'z', 'e')) +priority_queue = [] +set_gcode_offset_r = re.compile( + r'^\s*SET_GCODE_OFFSET(?:\s+[a-zA-Z_]+=[+-]?\d*\.?\d+)*\s+MOVE=1(?:\s+[a-zA-Z_]+=[+-]?\d*\.?\d+)*(?:\s|$)', + re.IGNORECASE + ) class GCodeCommand: error = CommandError @@ -111,6 +116,8 @@ class GCodeDispatch: func = getattr(self, 'cmd_' + cmd) desc = getattr(self, 'cmd_' + cmd + '_help', None) self.register_command(cmd, func, True, desc) + # Gcode macro interupt + self.break_flag=False def is_traditional_gcode(self, cmd): # A "traditional" g-code command is a letter and followed by a number try: @@ -138,6 +145,13 @@ class GCodeDispatch: self.base_gcode_handlers[cmd] = func if desc is not None: self.gcode_help[cmd] = desc + def remove_command(self, cmd): + if cmd in self.ready_gcode_handlers: + del self.ready_gcode_handlers[cmd] + if cmd in self.base_gcode_handlers: + del self.base_gcode_handlers[cmd] + else: + raise self.printer.config_error("Gcode command '%s' not registered" % cmd) def register_mux_command(self, cmd, key, value, func, desc=None): prev = self.mux_commands.get(cmd) if prev is None: @@ -176,6 +190,45 @@ class GCodeDispatch: for line in commands: # Ignore comments and leading/trailing spaces line = origline = line.strip() + # Gcode macro interupt + if self.break_flag: + if str(line) != "CANCEL_PRINT": + continue + else: + self.break_flag = False + self.printer.lookup_object("heaters").break_flag = False + while priority_queue: + priority_command = priority_queue.pop(0) + # self.respond_info("priority: {}".format(priority_command)) + cpos = priority_command.find(';') + if cpos >= 0: + priority_command = priority_command[:cpos] + parts = self.args_r.split(priority_command.upper()) + numparts = len(parts) + cmd = "" + if numparts >= 3 and parts[1] != 'N': + cmd = parts[1] + parts[2].strip() + elif numparts >= 5 and parts[1] == 'N': + cmd = parts[3] + parts[4].strip() + params = { parts[i]: parts[i+1].strip() + for i in range(1, numparts, 2) } + gcmd = GCodeCommand(self, cmd, priority_command, params, need_ack) + handler = self.gcode_handlers.get(cmd, self.cmd_default) + try: + handler(gcmd) + except self.error as e: + self._respond_error(str(e)) + self.printer.send_event("gcode:command_error") + if not need_ack: + raise + except: + msg = 'Internal error on command:"%s"' % (cmd,) + logging.exception(msg) + self.printer.invoke_shutdown(msg) + self._respond_error(msg) + if not need_ack: + raise + gcmd.ack() cpos = line.find(';') if cpos >= 0: line = line[:cpos] @@ -212,8 +265,16 @@ class GCodeDispatch: def run_script_from_command(self, script): self._process_commands(script.split('\n'), need_ack=False) def run_script(self, script): + lines = script.split('\n') + temp_lines = [] + for line in lines: + if set_gcode_offset_r.match(line) is not None: + priority_queue.append(line) + else: + temp_lines.append(line) + lines = temp_lines with self.mutex: - self._process_commands(script.split('\n'), need_ack=False) + self._process_commands(lines, need_ack=False) def get_mutex(self): return self.mutex def create_gcode_command(self, command, commandline, params): diff --git a/klippy/gcode.pyc b/klippy/gcode.pyc deleted file mode 100644 index 1db50b4e8470ab72e3fbc09a5e29654deb3535af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20076 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 I+dNwNf9r>|O8@`> diff --git a/klippy/kinematics/__init__.pyc b/klippy/kinematics/__init__.pyc deleted file mode 100644 index 7525a9cd3fd4dbecd0817d5c811afd42d8eb671e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 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 PF~eiUZq1wbm!JI)V!ISD diff --git a/klippy/kinematics/extruder.pyc b/klippy/kinematics/extruder.pyc deleted file mode 100644 index 17691144329c92ec8dbd246a259273fabc013217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16080 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 diff --git a/klippy/kinematics/none.pyc b/klippy/kinematics/none.pyc deleted file mode 100644 index f57243a551c90af26822d5bbaf6748e1d4512f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1807 zcmbtU%We}f6upy4(+8Aig@jnZG7=KmbyXn*3l>OOxGTD`h8Z_C$;?ExTT-dJ@>~20 zKfw=h&YefPKuB#S@r|#?IX*u3k^b4=`{jOr%cXr%{C>a)Z(s_1hf*Z+Q{+bE>k0e; zos&e0RF216*c2bZOzX;h@s%sH==0E{C3y7_BYcK&&HqFJ1}*GK+Ck!=R9|iJP#!Xp zVoN96QjB!6Bj$L#4Xm6zImqA>MtBW#oyd1k1i9{eGn8u)3s*pQfIZV0j6Ui{1*q%u zB0j)swsOIizACfTnDB836Wro7?$E32#hJ^BID(Vc)v2G2F%vc6EoPImx^$Cr9wzgJ zUoPEw^LsU!_u@<{X!UM+rHI!0%13L79!O7;oT7C@uSO1FeLUvsv^kMeLxvj=ct~6q zZHSIk!yf#O1i5hV2qm$PNiXY+!B;gsmRk<=l~R0)Sqo~Hb@0*GRoH+i&(5<&-h+{O z$CL~?sE9J9TpI3Ma&be$jiIaD575$pBVN9mS;l<>g31RyYE~`21XG1w` zTFx|LqeLR}euaiFQn_s9wSIkhQQlg>G8VLc45ilGZSr9kuDf(qjK19TnoTif@gf`m zHSEAhk|x{9UNYu6ZOK8w@y7NQgv3%G`fY1rEgw;JBYFpmtwXI{XpQ$c5UZ8!!H z!UF^di@UGR631Zko*W~WXD?Y~G7j;(Hb(4IB hrM7_DhNl&RRWUDN)~DS|3Jt_jBmH}ogz(P~{sRA?Xn+6! diff --git a/klippy/klippy.py b/klippy/klippy.py index 6e062ea..c1e88df 100644 --- a/klippy/klippy.py +++ b/klippy/klippy.py @@ -90,6 +90,19 @@ class Printer: raise self.config_error( "Printer object '%s' already created" % (name,)) self.objects[name] = obj + def remove_object(self, name): + if name not in self.objects: + raise self.config_error("Printer object '%s' not found" % (name,)) + del self.objects[name] + def swap_object(self, name1, name2): + if name1 not in self.objects or name2 not in self.objects: + raise self.config_error("Printer object '%s' or '%s' not found" % (name1, name2)) + self.objects[name1], self.objects[name2] = self.objects[name2], self.objects[name1] + def copy_object(self, name, new_name): + if name not in self.objects: + raise self.config_error("Object '%s' not found" % name) + new_obj = self.objects[name] + self.objects[new_name] = new_obj def lookup_object(self, name, default=configfile.sentinel): if name in self.objects: return self.objects[name] @@ -129,6 +142,11 @@ class Printer: raise self.config_error("Unable to load module '%s'" % (section,)) self.objects[section] = init_func(config.getsection(section)) return self.objects[section] + def unload_object(self, section): + if section in self.objects: + del self.objects[section] + else: + raise self.config_error("Object '%s' not found" % section) def _read_config(self): self.objects['configfile'] = pconfig = configfile.PrinterConfig(self) config = pconfig.read_main_config() diff --git a/klippy/mathutil.pyc b/klippy/mathutil.pyc deleted file mode 100644 index 27f9ed8dfa27d82cd9f57a2e70887614549566ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4598 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 TEfb^sj_nxTF*?3&eEk0fg+l7e diff --git a/klippy/msgproto.pyc b/klippy/msgproto.pyc deleted file mode 100644 index 1f365683605abdc5c8d77425d2e00d4be0171765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18988 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 A*8l(j diff --git a/klippy/pins.pyc b/klippy/pins.pyc deleted file mode 100644 index bd599a8cf1b96cc27bc2fd282c2c70616b92647a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6012 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 diff --git a/klippy/queuelogger.pyc b/klippy/queuelogger.pyc deleted file mode 100644 index 7222c6b969cdf867e8bb25d0b577646b382cab78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3638 zcmbtWYi}Dx6rI_1oY+a|BdBVjl+dch2+<%w1);RimKG`%1Jg(WOR(B_C(in@>+X*G zkeW~FCnSCne}zB64}f#-c>HkOf0JYlFTj4 z<{G>$URFt+L!A|sEQ+wo@kgyCXq5hgU)!xf{Apq*_PaPshPIfguQ724U-=dq+~2|F zN)CahT7*!UN38(UT{hKsmz&-};*F6l%eZG9wH=i`vAmsUR)o0d zmEtG+tP4-==Hd^>bH)=FW%<)Mb*_Q#y=PrJc4?luW%Tw0?R!O$7vfJti{<9RcJm@R znMXw>J4)RuPAgBNQ99JCdPO(z?@dS^a1U%2k1T+tu2D3~lgSWW0mX3ZTm_Mig)DET z(SmGUH$u@!c>XXgoy}fF^jp~Qe?&(NzC;WFX9>X00)vkuh(Zaw&LV?>(9K9hS__G~ z5N5&94@nV_20?^VaUM=O2m%e~A;u3d2Y=KV6$on_?)h?n_`!Hnx=qzz=1QIV)rfC$ zh_|-|gQt5o6IzVYBujgHPC(y@yMxL2Za&FeI>Xz6Le{m2m|;xHHcyYDbmuX$m5yv; zau+)U=>2q9r3w#KjeB^Scvp7s^dgBg;hoznY@9H(sos|KJmy&DCuQBd$HPjf;wh(q7;wm|`3uVZnIaQ9uk`PB+;AKpL3M@URPwDeuX_t;TlFz=xz_U-q`I6OK zz*Mj=X#l<-EUDtE`Y{tY`n4*$ABSpNknzcmhMBj~NG!wag4I?rv4&(72YJuW?KGz_ zb3*$rVe2}+k|D-OJPR9Z-nz=dyPSUy4QVE(L1D>q=!6QkkY}$l!q97?xOo?n*wW9_ zOftLVlar|}2bC@#U!!U@G?JPLR`rR}pJCvIWMF##iWuO_jZ~_Gz^jcVG)<7&JY)yY z^4imSL1dhdTQV%c!JA1g(TAz^gyx*VIi+>c5h8!U!6h`L-P&PL2#nareKSxFj)FjL z8qu4oc84}DUfbtI*6Bwj=w|rPi7-`dO`;(kA$YxH@~h)s7N1~ z@4|0^dVEFg1DQbekwNt|+rdh_an4orYslG6l>%ifT;_7jA!Xj+rO0|Ubpr!jFUV4_ zcKHd~n@4}^5A)u71;Bdj)~}Z9M_1e|>G-B0CX&vE_K6+N)1qM}G|U!~ypr5Z^O8hu znHLT@QV?O9i}C8n5@C)*_LMpvmtD$I+a$A%;(>);MhdPW+hxOp_Wd8`G&E$2S18SF zc`^=~4IJ_@zG+QfLoT?c>uAq_e)1eNq?S0A#4evMjrb(EOjPK(#lfpH9bNUje~_aPU$TyyGO9u8<0ccz!7Spwi|t z8qW&5GwBI&P#^GI9SWdDp1Zl*j^i;$6>-;O9HBh&;fgxC$uX%|!3yft3hEUq76ug= zJoDfkbl^e6#h{^zTM8N>pCiKdeOjq;mXYJbl+*Ppl44{&*;=`ePZ{$$8@fiEWWL}9 zd^QwzgaTbTkd;#SzJ1%YAGE*qdFdubU&9BI;STwL^zc;;KA;Cq>((0>^YGDYQ)gZG z^|UC>MNSJ`%nycs@?4k&w&#Z!D5ml~Xl|pKD=yNp5M09kP5-#P#mpdDZ-y66UA$Zm H8jXJeFVC_L diff --git a/klippy/reactor.pyc b/klippy/reactor.pyc deleted file mode 100644 index e3976147c80dfd493fefbb6dbb3f5d083d4b94c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16390 zcmds8U2I%eUO#tcJoY%_+OZvP(k5*-X^2bP6xg=AE!l0FG;Ip4hbwiL{1ox`3`+E-=UfB7o@+U`l(jv# zUw^T^mMYmK;+aa|wuO0B-C&RezBFvjllTr4i3io({i&pmv;F^^(ZbR4b6u6EYK$JSP($5va- zZa3`N-_6H*2FR)Irj`wYX1f^&!992<;;PQ8c(w@X!+f-zsN#>H<(JvjSXS*CcCI^v zVz9e9QIM8%96yFC=MLwt8K)E+_>wFm*-klyRES4WB}DbPe9ZIp!l>Vh_3W)$6F{yQ z0K}$WL6rlr>$7vWS(JzykWH#yod{zg3_AZ58aU@Qt39_`fpl?(@wHDr(lIsY^E`V$ zir7C6qxc|R7b=}6RB|~UQ%CtS8W}1#9@Vit_uL!D+zmImCGc8F&(IigHw(^N zpK+HPE;~2DwR7)di`bJ&=yw~nI1DJ1y_lR~EuLZF;$_K@;M2Q0GD$H6w4`d?BqO{R z?Ti3Zp41B=&Ir&(XA1$wTyMq2g7v0zHvlonQzESI6x~hFdF+>|jDf7QkLP29&ogpr zHQ?+L_OWeJ@)9pOc_m*fy)bM;o~1oj!noe=^&oOS@hCQ}K{K@*hEig%TkA(*!oX{t z>)|{>Gb9qgcoJ2r2m|ABpB%S$r0TW%@oL2Poi`0`p3=W*Z`9Lz3-baglX7dq{5+ljQ+u7!-!JdF}jP|DtnS1DBrm69M&m1JTT>X@OQOly%j z!mVb=v?LTG^cYcCCq`Mwrsq(iEn)%|FpUG@AbXg3l9YhjLCJy9jZN5<6Oq!NCpSvc zmh{4vW)z3LL_8=%&Gz-qYUuN+nJvB{)<~EeYJY&>LOwwo(!7aM58?fY@B`{w?rb*7bY}?Oh_a*w}VfH>bJKdU;yePcGDAmX6&oLg?h^fh208$sqzkpd|^X?1y?K2%!I9Is%zgzMX_B;RZt$+1!4c%yN1}`R^x8#PbAJUPqxrR<>q;K;a&uL zwbu`Q$si*g|4~+q8;nE;*rFo$A7S+{DoJm*)6Inx@Hw|K1SM(mejY_pwo$Sq&#vgr zd51w)xXhFx7E(&6eIAYNs5NVXlMxds+XH9fzk#Hd*8ku2rte@>I9r7Eibk;WM&Tn0Ala zV`?KGrF_*AGEL*k8X)VWbk!1aO;wE`y`((V(kydSTPqHRQ#R2b)qG*)Qd) zmJT^YYs@}OEA@aJmaTkq!Py!O{0En{Xst#1Sc8|Mh-N|(FRN4SG?9p^O zGLtrd4YEB?xzLo*qNSgC3A)643sRe@8uCVVM1*QVHZ-8$_%2Q^ zc$l0)*92|X;#I;MHI#^+v@2A+Ih1LXD#|1Z#EtO|iNZo=I)@Tb=@=uyu|lMinr$f< zItOtdIXM3rwC>6iB{E4+fEmTLIO?OHS~v1bT6Cym7+@~cqi1i{jS(nfE%QKbbM6%s z%5bbT+y1k7J@*B~OQLyj)#8s~LrCIk10`|#fKHy8NaA0e{ADzVPS{?Z773Q@{J`!F z*bc;vkV8b%Ot#3DAXtHprz}EhGa%6}X5^qF@1t0*w}oKZKf@teQf_KM^DI6OlV^hc z1$5;k2?xVOkN07PUqXpUM2FaM(whJ?9mvDy4F0cR0s#>UOf|79Xc;$KdQG`C;0P!X z7L2M}l9>WnjsZE*zsTwgt1qCEkT%gRowBtEVJ!a1WZwH41I z>V^;{sUBB+y*{))r({%B`9VH=;TVnz!3|j^riYu3l00$v2_|?%g3~}Pain}r5HomL& zIC7xhbT{D3z#H7>ZYc5h&ZtgyLD@jOS$4rbO{fxn(5z%boQ;!cN#u5W7d)IJ*?u&Y zR@-xeGfD0Iz_(9a|9iNTR6=x!^2?Vddan5w-~?Hf<~Y0Lixoa_?q8l+`L93u(Z?@e zS$t-mwm`z*lNaSE!9s97s-JqNkBlR=nVFtWOU{SHmQ1`>+c0St!H9WvN17Cy>cJf)>4AKCObqCn3ZfKeU5oAd<~8fNH5(;HiDOig#lSd?vmA z2xZU!5O*vRG)C&SccMv)N>vvrVd+ss7n(aQm%Gck>a#pReF!&Mw@_KmE=>#lF*Zwd z|FmfbvJ7>u4*eP$#?m+?SO9H1{c_PQLlD9HoA)uiNp2Y6q{3f=Mu3QVm)ox4%!`FC-}sNxUUmQNyRU{5R26vemD#b%hmiu`z-;+))`F%SI; za)*ovkpdrQJ9l6db_Cq<(9C8?Wj)^wtEyWh{4XUb>qzeSv<-I1a!II zuB%b&tqkFV#5k4CNI_oyP=n4~-svz*El6Q#lgZI#$0YK38UK;XEu9yG#M zZF2~zqp$|iW)$eo@NdyG5DT<@&^_FMvPLikBC(J$gMmjV3cRB3y&#AbWiSW!MRnnO zS%hTs$PanH?0Q!;O9FROH>>Sq{H_2<;|mo8)LwGkI!;FmGAPc1F9)Zp=mON32RAA6 zjv=T8hi@@BKFK%Yhu6fH##-I^|H83*JEs_hX6QS3jSzOtfN+dqo_-pT1RTkv-%(P2~$ zBvi~%m_iUcU6=+ztGK?a7ODjimOHbEusk^thF@Sl2{6zBGQqWmbO z;j|TIa(Ih)CU_^%0DS=ofrYa#&uqc`vxo37KajGHdq0Z=bBz}d|I7ms)6T1xP!mA@ z)j_xy4+8wj!rX+<1|Ah1;F3VCLI+@wL2r6UF5n;Ii&TKrh|7&YSNiPp<|>KVEm!(5 z26ba$KKF5S{Rdf{KqaL*@Jes*koq00^COhxvThnT?iq(=7=IHJj7z{|tC0Lt0}Kan zQ)UAm^PhQ0nPte!_TK+_xSqFA-tgpneM zfotjI#=l{S%q%!Gn_y^pkB(e<)hKvQZzCvkN*ZJdUQ;ww%hEQ=ADg4cJ^dwCyjYRRQ*wdcPNyIHpXcatR73F0 zb-Y#vB+)4}9C)P+(^tj!NoDVT{N0bg6X2f-w8yselG{ouYo6~MiX32)UtbN=u{kUh zgG;b9Wl;vvKI=)`7C5eodXJukgVi@t<(N=wx3=H^65i#ZBCcMB3V~9YtrRQ8>S$%8 z@<63fEumGe>_aJ6W-H^>VzpEmnXFb0^4?aqaS@qQ-`Jv#RrEuqKZ_DQiwdyf19;ro z0`gn96h+EgCWUP@?5eiR5C1s_x3&5n8=3H1c(KBpPulO>y{|_wY9H z_9g%&2VSI5ZE@kbm;g75z0XxjsJehdtQM%nA>IWJ@Z8T~D97}!k<68zB(HI22R)Q{ zRP6GZRKRO!02qLAyUz^w2N2OR!@p6mdD?RA&=vp>05gxMZ!n<@s1ioqSz=?rzaGQ- z@~{1GaVPFu?{qi)UuBOE)0~4Zgz#*O7hihm#RW+yn-^YN6d`;PS5_?dxXn}I17Zw+ z3{Sg85!w7_i6T?k(?HQU#PGUf+oL)od=kM+QGS`Yl&jRpJ?RnbWnfc1<({t) zu{|3iU_6Qke_beeJj*a-^dB{YJokNMJH;k7VDZxd4Km-Mx1$Plc z(8TbJ_*o9fERv_A=-BtC;02h5^n(*@iBIdr>m;cE>#V-RUFcSlo)=$x)zH96_zxV- z<;{VJN-%#NPyF{#NiLRKwP6x=@^)XyiCck^vAYNvLgIxa5gIOHnxWz5XLz~yCYiY2 zvv>4zDH^hPNR2~NF}b1-nr2}u?RUGg`&SgN=ic~%a;La+!!?@u*J$Wd2-cJC?3vyV zC3r}};F|8*{vEwmn=+mGNg@=$Lh5I6{fDBcEj#1R^xhj>Z+6G^o)(~YSnp|X{XK`@ z9US2Tkeghfo%z<8`8jlV>j#TJ{9nNva$}nK`k0DitrlN34H7n6(ih?^<1wn20T1~% z**(FE_H5vqY^$5>-{O?dvpSAS{HD*HhY&eBm1LwHJmnMcj_Elw*=fG=C_Lu0J&BK> z8 zS*4qK_hyyR&JJcZRjYP&!g}mBvr3mWH>+kna3<&f9;+NiMPYS9#tas8|Z#(?%U@Cz>I88ICcWog>cv?ua zgCDW=`>eLv!9U>G308ZtgZ}T}jUkwZCh&bS%_%gtCX4tV+Ws$@z~99Iukxr{O<)f6 zjxBz2U|07(Thy`sZ?Rfu^#Q9#SxvKgn$;SsUuLDa9S!?@MITC-3O~uQhgdN#_Gz4b z9?v`=s_-Pv-FBqintQ2?)AoO*ze0N$J&5X65ab}f&nXvXMrP(_sxxDUMrMx8d@}ci OxyOt6B4->qiT?q$_1K#L diff --git a/klippy/serialhdl.pyc b/klippy/serialhdl.pyc deleted file mode 100644 index b4a564496951954496ab46e76325770c0a9141e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15805 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 AT>t<8 diff --git a/klippy/stepper.py b/klippy/stepper.py index ad7d128..3ffa3a4 100644 --- a/klippy/stepper.py +++ b/klippy/stepper.py @@ -5,6 +5,7 @@ # This file may be distributed under the terms of the GNU GPLv3 license. import math, logging, collections import chelper +from extras.homing import Homing class error(Exception): pass @@ -299,6 +300,9 @@ class PrinterRail: self.steppers = [] self.endstops = [] self.endstop_map = {} + # Reverse homing + self.endstops_reverse = [] + self.endstop_map_reverse = {} self.add_extra_stepper(config) mcu_stepper = self.steppers[0] self.get_name = mcu_stepper.get_name @@ -354,6 +358,21 @@ class PrinterRail: raise config.error( "Invalid homing_positive_dir / position_endstop in '%s'" % (config.get_name(),)) + # Reverse homing + if self.get_name() == "stepper_z": + if config.get('endstop_pin_reverse', None): + self.reversed = False + self.position_endstop_reverse = config.getfloat("position_endstop_reverse") + self.homing_positive_dir_reverse = config.getboolean('homing_positive_dir_reverse') + self.homing_speed_reverse = config.getfloat('homing_speed_reverse', self.homing_speed, above=0.) + self.homing_retract_dist_reverse = 0 + self.printer = config.get_printer() + self.gcode = self.printer.lookup_object('gcode') + self.printer.register_event_handler("klippy:ready", self.handle_ready) + self.printer.register_event_handler("homing:home_rails_end", self.handle_reverse_home_rails_end) + def handle_ready(self): + gcode = self.printer.lookup_object('gcode') + gcode.register_command("REVERSE_HOMING", self.cmd_REVERSE_HOMING) def get_range(self): return self.position_min, self.position_max def get_homing_info(self): @@ -371,6 +390,23 @@ class PrinterRail: def add_extra_stepper(self, config): stepper = PrinterStepper(config, self.stepper_units_in_radians) self.steppers.append(stepper) + # logging.info("%s begin to add stepper" % (stepper._name)) + if stepper._name == "stepper_z" or stepper._name == "stepper_z1": + endstop_pin_reverse = config.get('endstop_pin_reverse', None) + # logging.info("%s begin to add mcu endstop" % (stepper._name)) + # logging.info(endstop_pin_reverse) + if endstop_pin_reverse: + printer = config.get_printer() + ppins = printer.lookup_object('pins') + pin_params = ppins.parse_pin(endstop_pin_reverse, True, True) + pin_name = "%s:%s" % (pin_params['chip_name'], pin_params['pin']) + mcu_endstop_reverse = ppins.setup_pin('endstop', endstop_pin_reverse) + self.endstop_map_reverse[pin_name] = {'endstop': mcu_endstop_reverse, + 'invert': pin_params['invert'], + 'pullup': pin_params['pullup']} + name = stepper.get_name(short=True) + self.endstops_reverse.append((mcu_endstop_reverse, name)) + mcu_endstop_reverse.add_stepper(stepper) if self.endstops and config.get('endstop_pin', None) is None: # No endstop defined - use primary endstop self.endstops[0][0].add_stepper(stepper) @@ -402,6 +438,36 @@ class PrinterRail: "must specify the same pullup/invert settings" % ( self.get_name(), pin_name)) mcu_endstop.add_stepper(stepper) + def homing_params_switch(self): + self.reversed = not self.reversed + self.endstop_map, self.endstop_map_reverse = self.endstop_map_reverse, self.endstop_map + self.endstops, self.endstops_reverse = self.endstops_reverse, self.endstops + self.position_endstop, self.position_endstop_reverse = self.position_endstop_reverse, self.position_endstop + self.homing_positive_dir, self.homing_positive_dir_reverse = self.homing_positive_dir_reverse, self.homing_positive_dir + self.homing_retract_dist, self.homing_retract_dist_reverse = self.homing_retract_dist_reverse, self.homing_retract_dist + self.homing_speed, self.homing_speed_reverse = self.homing_speed_reverse, self.homing_speed + # logging.info("homing_params_switch") + # logging.info(str(list(self.endstop_map))) + # logging.info(str(self.endstops)) + # logging.info(self.position_endstop) + # logging.info(self.homing_positive_dir) + # logging.info(self.homing_retract_dist) + def cmd_REVERSE_HOMING(self, gcmd): + self.homing_params_switch() + try: + homing_state = Homing(self.printer) + homing_state.set_axes([2]) + kin = self.printer.lookup_object('toolhead').get_kinematics() + kin.home(homing_state) + except self.printer.command_error: + if self.printer.is_shutdown(): + raise self.printer.command_error( + "Homing failed due to printer shutdown") + self.printer.lookup_object('stepper_enable').motor_off() + raise + def handle_reverse_home_rails_end(self, homing_state, rails): + if self.reversed: + self.homing_params_switch() def setup_itersolve(self, alloc_func, *params): for stepper in self.steppers: stepper.setup_itersolve(alloc_func, *params) diff --git a/klippy/stepper.pyc b/klippy/stepper.pyc deleted file mode 100644 index 9f9cd9a235c1a256365ee3013347a4699ca33436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18232 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 tE9jdJoZA2Z diff --git a/klippy/toolhead.py b/klippy/toolhead.py index b728542..4d9da49 100644 --- a/klippy/toolhead.py +++ b/klippy/toolhead.py @@ -4,6 +4,7 @@ # # This file may be distributed under the terms of the GNU GPLv3 license. import math, logging, importlib +from pickle import NONE import mcu, chelper, kinematics.extruder # Common suffixes: _d is distance (in mm), _v is velocity (in @@ -223,7 +224,7 @@ class ToolHead: self.buffer_time_low = config.getfloat( 'buffer_time_low', 1.000, above=0.) self.buffer_time_high = config.getfloat( - 'buffer_time_high', 2.000, above=self.buffer_time_low) + 'buffer_time_high', 10.000, above=self.buffer_time_low) self.buffer_time_start = config.getfloat( 'buffer_time_start', 0.250, above=0.) self.move_flush_time = config.getfloat( @@ -268,12 +269,44 @@ class ToolHead: gcode.register_command('SET_VELOCITY_LIMIT', self.cmd_SET_VELOCITY_LIMIT, desc=self.cmd_SET_VELOCITY_LIMIT_help) + # Change z velocity + gcode.register_command('SET_Z_VELOCITY_LIMIT', + self.cmd_SET_Z_VELOCITY_LIMIT, + desc=self.cmd_SET_Z_VELOCITY_LIMIT_help) + gcode.register_command('SET_Z_ACCEL_LIMIT', + self.cmd_SET_Z_ACCEL_LIMIT, + desc=self.cmd_SET_Z_ACCEL_LIMIT_help) + gcode.register_command('M204', self.cmd_M204) # Load some default modules modules = ["gcode_move", "homing", "idle_timeout", "statistics", "manual_probe", "tuning_tower"] for module_name in modules: self.printer.load_object(config, module_name) + + # Change z velocity + cmd_SET_Z_VELOCITY_LIMIT_help = "Change z velocity limit, parameter VALUE" + def cmd_SET_Z_VELOCITY_LIMIT(self, gcmd): + kin = self.get_kinematics() + value = gcmd.get_float('VALUE', None, above=0.) + # gcmd.respond_info('Z velocity before change: ' + str(kin.max_z_velocity)) + if value: + kin.max_z_velocity = value + else: + gcmd.respond_info("Value given is illegal") + # gcmd.respond_info('Z velocity after change: ' + str(kin.max_z_velocity)) + + cmd_SET_Z_ACCEL_LIMIT_help = "Change z accel, parameter VALUE" + def cmd_SET_Z_ACCEL_LIMIT(self, gcmd): + kin = self.get_kinematics() + value = gcmd.get_float('VALUE', None, above=0.) + # gcmd.respond_info('Z accel before change: ' + str(kin.max_z_accel)) + if value: + kin.max_z_accel = value + else: + gcmd.respond_info("Value given is illegal") + # gcmd.respond_info('Z accel after change: ' + str(kin.max_z_accel)) + # Print time tracking def _update_move_time(self, next_print_time): batch_time = MOVE_BATCH_TIME diff --git a/klippy/toolhead.pyc b/klippy/toolhead.pyc deleted file mode 100644 index 8cab92673834e72f145fddeecb3cf3243ace87e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21990 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 diff --git a/klippy/util.pyc b/klippy/util.pyc deleted file mode 100644 index fc57b183cba03ea39e61278ea041ac67a188b9b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5497 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 diff --git a/lib/kconfiglib/__pycache__/kconfiglib.cpython-37.pyc b/lib/kconfiglib/__pycache__/kconfiglib.cpython-37.pyc deleted file mode 100644 index d44d852ba9b2523e298387f67b0dabf4ef423189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159879 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 Mzaqap{~62w2MsB8C;$Ke diff --git a/lib/sam3x/include/component-version.h b/lib/sam3x/include/component-version.h index 1f3da03..1d794fd 100644 --- a/lib/sam3x/include/component-version.h +++ b/lib/sam3x/include/component-version.h @@ -1,72 +1,72 @@ -/***************************************************************************** - * - * Copyright (C) 2016 Atmel Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of the copyright holders nor the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - ****************************************************************************/ - - -#ifndef _COMPONENT_VERSION_H_INCLUDED -#define _COMPONENT_VERSION_H_INCLUDED - -#define COMPONENT_VERSION_MAJOR 1 -#define COMPONENT_VERSION_MINOR 0 - -// -// The COMPONENT_VERSION define is composed of the major and the minor version number. -// -// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. -// The rest of the COMPONENT_VERSION is the major version, with leading zeros. The COMPONENT_VERSION -// is at least 8 digits long. -// -#define COMPONENT_VERSION 00010000 - -// -// The build number does not refer to the component, but to the build number -// of the device pack that provides the component. -// -#define BUILD_NUMBER 50 - -// -// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. -// -#define COMPONENT_VERSION_STRING "1.0" - -// -// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. -// -// The COMPONENT_DATE_STRING is written out using the following strftime pattern. -// -// "%Y-%m-%d %H:%M:%S" -// -// -#define COMPONENT_DATE_STRING "2016-09-15 13:24:20" - -#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ - +/***************************************************************************** + * + * Copyright (C) 2016 Atmel Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of the copyright holders nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + ****************************************************************************/ + + +#ifndef _COMPONENT_VERSION_H_INCLUDED +#define _COMPONENT_VERSION_H_INCLUDED + +#define COMPONENT_VERSION_MAJOR 1 +#define COMPONENT_VERSION_MINOR 0 + +// +// The COMPONENT_VERSION define is composed of the major and the minor version number. +// +// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. +// The rest of the COMPONENT_VERSION is the major version, with leading zeros. The COMPONENT_VERSION +// is at least 8 digits long. +// +#define COMPONENT_VERSION 00010000 + +// +// The build number does not refer to the component, but to the build number +// of the device pack that provides the component. +// +#define BUILD_NUMBER 50 + +// +// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. +// +#define COMPONENT_VERSION_STRING "1.0" + +// +// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. +// +// The COMPONENT_DATE_STRING is written out using the following strftime pattern. +// +// "%Y-%m-%d %H:%M:%S" +// +// +#define COMPONENT_DATE_STRING "2016-09-15 13:24:20" + +#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ + diff --git a/lib/samd21/samd21a/gcc/system_samd21.c b/lib/samd21/samd21a/gcc/system_samd21.c index d8287b9..05a18f9 100644 --- a/lib/samd21/samd21a/gcc/system_samd21.c +++ b/lib/samd21/samd21a/gcc/system_samd21.c @@ -1,64 +1,64 @@ -/** - * \file - * - * \brief Low-level initialization functions called upon chip startup. - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#include "samd21.h" - -/** - * Initial system clock frequency. The System RC Oscillator (RCSYS) provides - * the source for the main clock at chip startup. - */ -#define __SYSTEM_CLOCK (1000000) - -uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/ - -/** - * Initialize the system - * - * @brief Setup the microcontroller system. - * Initialize the System and update the SystemCoreClock variable. - */ -void SystemInit(void) -{ - // Keep the default device state after reset - SystemCoreClock = __SYSTEM_CLOCK; - return; -} - -/** - * Update SystemCoreClock variable - * - * @brief Updates the SystemCoreClock with current core Clock - * retrieved from cpu registers. - */ -void SystemCoreClockUpdate(void) -{ - // Not implemented - SystemCoreClock = __SYSTEM_CLOCK; - return; -} +/** + * \file + * + * \brief Low-level initialization functions called upon chip startup. + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#include "samd21.h" + +/** + * Initial system clock frequency. The System RC Oscillator (RCSYS) provides + * the source for the main clock at chip startup. + */ +#define __SYSTEM_CLOCK (1000000) + +uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/ + +/** + * Initialize the system + * + * @brief Setup the microcontroller system. + * Initialize the System and update the SystemCoreClock variable. + */ +void SystemInit(void) +{ + // Keep the default device state after reset + SystemCoreClock = __SYSTEM_CLOCK; + return; +} + +/** + * Update SystemCoreClock variable + * + * @brief Updates the SystemCoreClock with current core Clock + * retrieved from cpu registers. + */ +void SystemCoreClockUpdate(void) +{ + // Not implemented + SystemCoreClock = __SYSTEM_CLOCK; + return; +} diff --git a/lib/samd21/samd21a/include/component-version.h b/lib/samd21/samd21a/include/component-version.h index d58a259..ed7de37 100644 --- a/lib/samd21/samd21a/include/component-version.h +++ b/lib/samd21/samd21a/include/component-version.h @@ -1,64 +1,64 @@ -/** - * \file - * - * \brief Component version header file - * - * Copyright (c) 2018 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. - * - * \license_start - * - * \page License - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \license_stop - * - */ - -#ifndef _COMPONENT_VERSION_H_INCLUDED -#define _COMPONENT_VERSION_H_INCLUDED - -#define COMPONENT_VERSION_MAJOR 1 -#define COMPONENT_VERSION_MINOR 3 - -// -// The COMPONENT_VERSION define is composed of the major and the minor version number. -// -// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. -// The rest of the COMPONENT_VERSION is the major version. -// -#define COMPONENT_VERSION 10003 - -// -// The build number does not refer to the component, but to the build number -// of the device pack that provides the component. -// -#define BUILD_NUMBER 304 - -// -// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. -// -#define COMPONENT_VERSION_STRING "1.3" - -// -// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. -// -// The COMPONENT_DATE_STRING is written out using the following strftime pattern. -// -// "%Y-%m-%d %H:%M:%S" -// -// -#define COMPONENT_DATE_STRING "2018-05-23 09:26:19" - -#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ - +/** + * \file + * + * \brief Component version header file + * + * Copyright (c) 2018 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. + * + * \license_start + * + * \page License + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \license_stop + * + */ + +#ifndef _COMPONENT_VERSION_H_INCLUDED +#define _COMPONENT_VERSION_H_INCLUDED + +#define COMPONENT_VERSION_MAJOR 1 +#define COMPONENT_VERSION_MINOR 3 + +// +// The COMPONENT_VERSION define is composed of the major and the minor version number. +// +// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. +// The rest of the COMPONENT_VERSION is the major version. +// +#define COMPONENT_VERSION 10003 + +// +// The build number does not refer to the component, but to the build number +// of the device pack that provides the component. +// +#define BUILD_NUMBER 304 + +// +// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. +// +#define COMPONENT_VERSION_STRING "1.3" + +// +// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. +// +// The COMPONENT_DATE_STRING is written out using the following strftime pattern. +// +// "%Y-%m-%d %H:%M:%S" +// +// +#define COMPONENT_DATE_STRING "2018-05-23 09:26:19" + +#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ + diff --git a/lib/samd21/samd21a/include/component/ac.h b/lib/samd21/samd21a/include/component/ac.h index ac5923f..53dd4a5 100644 --- a/lib/samd21/samd21a/include/component/ac.h +++ b/lib/samd21/samd21a/include/component/ac.h @@ -1,545 +1,545 @@ -/** - * \file - * - * \brief Component description for AC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21_AC_COMPONENT_ -#define _SAMD21_AC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR AC */ -/* ========================================================================== */ -/** \addtogroup SAMD21_AC Analog Comparators */ -/*@{*/ - -#define AC_U2205 -#define REV_AC 0x111 - -/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W 8) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Enable */ - uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */ - uint8_t :4; /*!< bit: 3.. 6 Reserved */ - uint8_t LPMUX:1; /*!< bit: 7 Low-Power Mux */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_CTRLA_OFFSET 0x00 /**< \brief (AC_CTRLA offset) Control A */ -#define AC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLA reset_value) Control A */ - -#define AC_CTRLA_SWRST_Pos 0 /**< \brief (AC_CTRLA) Software Reset */ -#define AC_CTRLA_SWRST (_U_(0x1) << AC_CTRLA_SWRST_Pos) -#define AC_CTRLA_ENABLE_Pos 1 /**< \brief (AC_CTRLA) Enable */ -#define AC_CTRLA_ENABLE (_U_(0x1) << AC_CTRLA_ENABLE_Pos) -#define AC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (AC_CTRLA) Run in Standby */ -#define AC_CTRLA_RUNSTDBY_Msk (_U_(0x1) << AC_CTRLA_RUNSTDBY_Pos) -#define AC_CTRLA_RUNSTDBY(value) (AC_CTRLA_RUNSTDBY_Msk & ((value) << AC_CTRLA_RUNSTDBY_Pos)) -#define AC_CTRLA_LPMUX_Pos 7 /**< \brief (AC_CTRLA) Low-Power Mux */ -#define AC_CTRLA_LPMUX (_U_(0x1) << AC_CTRLA_LPMUX_Pos) -#define AC_CTRLA_MASK _U_(0x87) /**< \brief (AC_CTRLA) MASK Register */ - -/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W 8) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t START0:1; /*!< bit: 0 Comparator 0 Start Comparison */ - uint8_t START1:1; /*!< bit: 1 Comparator 1 Start Comparison */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t START:2; /*!< bit: 0.. 1 Comparator x Start Comparison */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_CTRLB_OFFSET 0x01 /**< \brief (AC_CTRLB offset) Control B */ -#define AC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLB reset_value) Control B */ - -#define AC_CTRLB_START0_Pos 0 /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */ -#define AC_CTRLB_START0 (_U_(1) << AC_CTRLB_START0_Pos) -#define AC_CTRLB_START1_Pos 1 /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */ -#define AC_CTRLB_START1 (_U_(1) << AC_CTRLB_START1_Pos) -#define AC_CTRLB_START_Pos 0 /**< \brief (AC_CTRLB) Comparator x Start Comparison */ -#define AC_CTRLB_START_Msk (_U_(0x3) << AC_CTRLB_START_Pos) -#define AC_CTRLB_START(value) (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos)) -#define AC_CTRLB_MASK _U_(0x03) /**< \brief (AC_CTRLB) MASK Register */ - -/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t COMPEO0:1; /*!< bit: 0 Comparator 0 Event Output Enable */ - uint16_t COMPEO1:1; /*!< bit: 1 Comparator 1 Event Output Enable */ - uint16_t :2; /*!< bit: 2.. 3 Reserved */ - uint16_t WINEO0:1; /*!< bit: 4 Window 0 Event Output Enable */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t COMPEI0:1; /*!< bit: 8 Comparator 0 Event Input */ - uint16_t COMPEI1:1; /*!< bit: 9 Comparator 1 Event Input */ - uint16_t :6; /*!< bit: 10..15 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint16_t COMPEO:2; /*!< bit: 0.. 1 Comparator x Event Output Enable */ - uint16_t :2; /*!< bit: 2.. 3 Reserved */ - uint16_t WINEO:1; /*!< bit: 4 Window x Event Output Enable */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t COMPEI:2; /*!< bit: 8.. 9 Comparator x Event Input */ - uint16_t :6; /*!< bit: 10..15 Reserved */ - } vec; /*!< Structure used for vec access */ - uint16_t reg; /*!< Type used for register access */ -} AC_EVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_EVCTRL_OFFSET 0x02 /**< \brief (AC_EVCTRL offset) Event Control */ -#define AC_EVCTRL_RESETVALUE _U_(0x0000) /**< \brief (AC_EVCTRL reset_value) Event Control */ - -#define AC_EVCTRL_COMPEO0_Pos 0 /**< \brief (AC_EVCTRL) Comparator 0 Event Output Enable */ -#define AC_EVCTRL_COMPEO0 (_U_(1) << AC_EVCTRL_COMPEO0_Pos) -#define AC_EVCTRL_COMPEO1_Pos 1 /**< \brief (AC_EVCTRL) Comparator 1 Event Output Enable */ -#define AC_EVCTRL_COMPEO1 (_U_(1) << AC_EVCTRL_COMPEO1_Pos) -#define AC_EVCTRL_COMPEO_Pos 0 /**< \brief (AC_EVCTRL) Comparator x Event Output Enable */ -#define AC_EVCTRL_COMPEO_Msk (_U_(0x3) << AC_EVCTRL_COMPEO_Pos) -#define AC_EVCTRL_COMPEO(value) (AC_EVCTRL_COMPEO_Msk & ((value) << AC_EVCTRL_COMPEO_Pos)) -#define AC_EVCTRL_WINEO0_Pos 4 /**< \brief (AC_EVCTRL) Window 0 Event Output Enable */ -#define AC_EVCTRL_WINEO0 (_U_(1) << AC_EVCTRL_WINEO0_Pos) -#define AC_EVCTRL_WINEO_Pos 4 /**< \brief (AC_EVCTRL) Window x Event Output Enable */ -#define AC_EVCTRL_WINEO_Msk (_U_(0x1) << AC_EVCTRL_WINEO_Pos) -#define AC_EVCTRL_WINEO(value) (AC_EVCTRL_WINEO_Msk & ((value) << AC_EVCTRL_WINEO_Pos)) -#define AC_EVCTRL_COMPEI0_Pos 8 /**< \brief (AC_EVCTRL) Comparator 0 Event Input */ -#define AC_EVCTRL_COMPEI0 (_U_(1) << AC_EVCTRL_COMPEI0_Pos) -#define AC_EVCTRL_COMPEI1_Pos 9 /**< \brief (AC_EVCTRL) Comparator 1 Event Input */ -#define AC_EVCTRL_COMPEI1 (_U_(1) << AC_EVCTRL_COMPEI1_Pos) -#define AC_EVCTRL_COMPEI_Pos 8 /**< \brief (AC_EVCTRL) Comparator x Event Input */ -#define AC_EVCTRL_COMPEI_Msk (_U_(0x3) << AC_EVCTRL_COMPEI_Pos) -#define AC_EVCTRL_COMPEI(value) (AC_EVCTRL_COMPEI_Msk & ((value) << AC_EVCTRL_COMPEI_Pos)) -#define AC_EVCTRL_MASK _U_(0x0313) /**< \brief (AC_EVCTRL) MASK Register */ - -/* -------- AC_INTENCLR : (AC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ - uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_INTENCLR_OFFSET 0x04 /**< \brief (AC_INTENCLR offset) Interrupt Enable Clear */ -#define AC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AC_INTENCLR reset_value) Interrupt Enable Clear */ - -#define AC_INTENCLR_COMP0_Pos 0 /**< \brief (AC_INTENCLR) Comparator 0 Interrupt Enable */ -#define AC_INTENCLR_COMP0 (_U_(1) << AC_INTENCLR_COMP0_Pos) -#define AC_INTENCLR_COMP1_Pos 1 /**< \brief (AC_INTENCLR) Comparator 1 Interrupt Enable */ -#define AC_INTENCLR_COMP1 (_U_(1) << AC_INTENCLR_COMP1_Pos) -#define AC_INTENCLR_COMP_Pos 0 /**< \brief (AC_INTENCLR) Comparator x Interrupt Enable */ -#define AC_INTENCLR_COMP_Msk (_U_(0x3) << AC_INTENCLR_COMP_Pos) -#define AC_INTENCLR_COMP(value) (AC_INTENCLR_COMP_Msk & ((value) << AC_INTENCLR_COMP_Pos)) -#define AC_INTENCLR_WIN0_Pos 4 /**< \brief (AC_INTENCLR) Window 0 Interrupt Enable */ -#define AC_INTENCLR_WIN0 (_U_(1) << AC_INTENCLR_WIN0_Pos) -#define AC_INTENCLR_WIN_Pos 4 /**< \brief (AC_INTENCLR) Window x Interrupt Enable */ -#define AC_INTENCLR_WIN_Msk (_U_(0x1) << AC_INTENCLR_WIN_Pos) -#define AC_INTENCLR_WIN(value) (AC_INTENCLR_WIN_Msk & ((value) << AC_INTENCLR_WIN_Pos)) -#define AC_INTENCLR_MASK _U_(0x13) /**< \brief (AC_INTENCLR) MASK Register */ - -/* -------- AC_INTENSET : (AC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ - uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_INTENSET_OFFSET 0x05 /**< \brief (AC_INTENSET offset) Interrupt Enable Set */ -#define AC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AC_INTENSET reset_value) Interrupt Enable Set */ - -#define AC_INTENSET_COMP0_Pos 0 /**< \brief (AC_INTENSET) Comparator 0 Interrupt Enable */ -#define AC_INTENSET_COMP0 (_U_(1) << AC_INTENSET_COMP0_Pos) -#define AC_INTENSET_COMP1_Pos 1 /**< \brief (AC_INTENSET) Comparator 1 Interrupt Enable */ -#define AC_INTENSET_COMP1 (_U_(1) << AC_INTENSET_COMP1_Pos) -#define AC_INTENSET_COMP_Pos 0 /**< \brief (AC_INTENSET) Comparator x Interrupt Enable */ -#define AC_INTENSET_COMP_Msk (_U_(0x3) << AC_INTENSET_COMP_Pos) -#define AC_INTENSET_COMP(value) (AC_INTENSET_COMP_Msk & ((value) << AC_INTENSET_COMP_Pos)) -#define AC_INTENSET_WIN0_Pos 4 /**< \brief (AC_INTENSET) Window 0 Interrupt Enable */ -#define AC_INTENSET_WIN0 (_U_(1) << AC_INTENSET_WIN0_Pos) -#define AC_INTENSET_WIN_Pos 4 /**< \brief (AC_INTENSET) Window x Interrupt Enable */ -#define AC_INTENSET_WIN_Msk (_U_(0x1) << AC_INTENSET_WIN_Pos) -#define AC_INTENSET_WIN(value) (AC_INTENSET_WIN_Msk & ((value) << AC_INTENSET_WIN_Pos)) -#define AC_INTENSET_MASK _U_(0x13) /**< \brief (AC_INTENSET) MASK Register */ - -/* -------- AC_INTFLAG : (AC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t COMP0:1; /*!< bit: 0 Comparator 0 */ - __I uint8_t COMP1:1; /*!< bit: 1 Comparator 1 */ - __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ - __I uint8_t WIN0:1; /*!< bit: 4 Window 0 */ - __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - __I uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x */ - __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ - __I uint8_t WIN:1; /*!< bit: 4 Window x */ - __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_INTFLAG_OFFSET 0x06 /**< \brief (AC_INTFLAG offset) Interrupt Flag Status and Clear */ -#define AC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AC_INTFLAG reset_value) Interrupt Flag Status and Clear */ - -#define AC_INTFLAG_COMP0_Pos 0 /**< \brief (AC_INTFLAG) Comparator 0 */ -#define AC_INTFLAG_COMP0 (_U_(1) << AC_INTFLAG_COMP0_Pos) -#define AC_INTFLAG_COMP1_Pos 1 /**< \brief (AC_INTFLAG) Comparator 1 */ -#define AC_INTFLAG_COMP1 (_U_(1) << AC_INTFLAG_COMP1_Pos) -#define AC_INTFLAG_COMP_Pos 0 /**< \brief (AC_INTFLAG) Comparator x */ -#define AC_INTFLAG_COMP_Msk (_U_(0x3) << AC_INTFLAG_COMP_Pos) -#define AC_INTFLAG_COMP(value) (AC_INTFLAG_COMP_Msk & ((value) << AC_INTFLAG_COMP_Pos)) -#define AC_INTFLAG_WIN0_Pos 4 /**< \brief (AC_INTFLAG) Window 0 */ -#define AC_INTFLAG_WIN0 (_U_(1) << AC_INTFLAG_WIN0_Pos) -#define AC_INTFLAG_WIN_Pos 4 /**< \brief (AC_INTFLAG) Window x */ -#define AC_INTFLAG_WIN_Msk (_U_(0x1) << AC_INTFLAG_WIN_Pos) -#define AC_INTFLAG_WIN(value) (AC_INTFLAG_WIN_Msk & ((value) << AC_INTFLAG_WIN_Pos)) -#define AC_INTFLAG_MASK _U_(0x13) /**< \brief (AC_INTFLAG) MASK Register */ - -/* -------- AC_STATUSA : (AC Offset: 0x08) (R/ 8) Status A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ - uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_STATUSA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_STATUSA_OFFSET 0x08 /**< \brief (AC_STATUSA offset) Status A */ -#define AC_STATUSA_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSA reset_value) Status A */ - -#define AC_STATUSA_STATE0_Pos 0 /**< \brief (AC_STATUSA) Comparator 0 Current State */ -#define AC_STATUSA_STATE0 (_U_(1) << AC_STATUSA_STATE0_Pos) -#define AC_STATUSA_STATE1_Pos 1 /**< \brief (AC_STATUSA) Comparator 1 Current State */ -#define AC_STATUSA_STATE1 (_U_(1) << AC_STATUSA_STATE1_Pos) -#define AC_STATUSA_STATE_Pos 0 /**< \brief (AC_STATUSA) Comparator x Current State */ -#define AC_STATUSA_STATE_Msk (_U_(0x3) << AC_STATUSA_STATE_Pos) -#define AC_STATUSA_STATE(value) (AC_STATUSA_STATE_Msk & ((value) << AC_STATUSA_STATE_Pos)) -#define AC_STATUSA_WSTATE0_Pos 4 /**< \brief (AC_STATUSA) Window 0 Current State */ -#define AC_STATUSA_WSTATE0_Msk (_U_(0x3) << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_WSTATE0(value) (AC_STATUSA_WSTATE0_Msk & ((value) << AC_STATUSA_WSTATE0_Pos)) -#define AC_STATUSA_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSA) Signal is above window */ -#define AC_STATUSA_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSA) Signal is inside window */ -#define AC_STATUSA_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSA) Signal is below window */ -#define AC_STATUSA_WSTATE0_ABOVE (AC_STATUSA_WSTATE0_ABOVE_Val << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_WSTATE0_INSIDE (AC_STATUSA_WSTATE0_INSIDE_Val << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_WSTATE0_BELOW (AC_STATUSA_WSTATE0_BELOW_Val << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_MASK _U_(0x33) /**< \brief (AC_STATUSA) MASK Register */ - -/* -------- AC_STATUSB : (AC Offset: 0x09) (R/ 8) Status B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t READY0:1; /*!< bit: 0 Comparator 0 Ready */ - uint8_t READY1:1; /*!< bit: 1 Comparator 1 Ready */ - uint8_t :5; /*!< bit: 2.. 6 Reserved */ - uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t READY:2; /*!< bit: 0.. 1 Comparator x Ready */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_STATUSB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_STATUSB_OFFSET 0x09 /**< \brief (AC_STATUSB offset) Status B */ -#define AC_STATUSB_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSB reset_value) Status B */ - -#define AC_STATUSB_READY0_Pos 0 /**< \brief (AC_STATUSB) Comparator 0 Ready */ -#define AC_STATUSB_READY0 (_U_(1) << AC_STATUSB_READY0_Pos) -#define AC_STATUSB_READY1_Pos 1 /**< \brief (AC_STATUSB) Comparator 1 Ready */ -#define AC_STATUSB_READY1 (_U_(1) << AC_STATUSB_READY1_Pos) -#define AC_STATUSB_READY_Pos 0 /**< \brief (AC_STATUSB) Comparator x Ready */ -#define AC_STATUSB_READY_Msk (_U_(0x3) << AC_STATUSB_READY_Pos) -#define AC_STATUSB_READY(value) (AC_STATUSB_READY_Msk & ((value) << AC_STATUSB_READY_Pos)) -#define AC_STATUSB_SYNCBUSY_Pos 7 /**< \brief (AC_STATUSB) Synchronization Busy */ -#define AC_STATUSB_SYNCBUSY (_U_(0x1) << AC_STATUSB_SYNCBUSY_Pos) -#define AC_STATUSB_MASK _U_(0x83) /**< \brief (AC_STATUSB) MASK Register */ - -/* -------- AC_STATUSC : (AC Offset: 0x0A) (R/ 8) Status C -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ - uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_STATUSC_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_STATUSC_OFFSET 0x0A /**< \brief (AC_STATUSC offset) Status C */ -#define AC_STATUSC_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSC reset_value) Status C */ - -#define AC_STATUSC_STATE0_Pos 0 /**< \brief (AC_STATUSC) Comparator 0 Current State */ -#define AC_STATUSC_STATE0 (_U_(1) << AC_STATUSC_STATE0_Pos) -#define AC_STATUSC_STATE1_Pos 1 /**< \brief (AC_STATUSC) Comparator 1 Current State */ -#define AC_STATUSC_STATE1 (_U_(1) << AC_STATUSC_STATE1_Pos) -#define AC_STATUSC_STATE_Pos 0 /**< \brief (AC_STATUSC) Comparator x Current State */ -#define AC_STATUSC_STATE_Msk (_U_(0x3) << AC_STATUSC_STATE_Pos) -#define AC_STATUSC_STATE(value) (AC_STATUSC_STATE_Msk & ((value) << AC_STATUSC_STATE_Pos)) -#define AC_STATUSC_WSTATE0_Pos 4 /**< \brief (AC_STATUSC) Window 0 Current State */ -#define AC_STATUSC_WSTATE0_Msk (_U_(0x3) << AC_STATUSC_WSTATE0_Pos) -#define AC_STATUSC_WSTATE0(value) (AC_STATUSC_WSTATE0_Msk & ((value) << AC_STATUSC_WSTATE0_Pos)) -#define AC_STATUSC_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSC) Signal is above window */ -#define AC_STATUSC_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSC) Signal is inside window */ -#define AC_STATUSC_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSC) Signal is below window */ -#define AC_STATUSC_WSTATE0_ABOVE (AC_STATUSC_WSTATE0_ABOVE_Val << AC_STATUSC_WSTATE0_Pos) -#define AC_STATUSC_WSTATE0_INSIDE (AC_STATUSC_WSTATE0_INSIDE_Val << AC_STATUSC_WSTATE0_Pos) -#define AC_STATUSC_WSTATE0_BELOW (AC_STATUSC_WSTATE0_BELOW_Val << AC_STATUSC_WSTATE0_Pos) -#define AC_STATUSC_MASK _U_(0x33) /**< \brief (AC_STATUSC) MASK Register */ - -/* -------- AC_WINCTRL : (AC Offset: 0x0C) (R/W 8) Window Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t WEN0:1; /*!< bit: 0 Window 0 Mode Enable */ - uint8_t WINTSEL0:2; /*!< bit: 1.. 2 Window 0 Interrupt Selection */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_WINCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_WINCTRL_OFFSET 0x0C /**< \brief (AC_WINCTRL offset) Window Control */ -#define AC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_WINCTRL reset_value) Window Control */ - -#define AC_WINCTRL_WEN0_Pos 0 /**< \brief (AC_WINCTRL) Window 0 Mode Enable */ -#define AC_WINCTRL_WEN0 (_U_(0x1) << AC_WINCTRL_WEN0_Pos) -#define AC_WINCTRL_WINTSEL0_Pos 1 /**< \brief (AC_WINCTRL) Window 0 Interrupt Selection */ -#define AC_WINCTRL_WINTSEL0_Msk (_U_(0x3) << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0(value) (AC_WINCTRL_WINTSEL0_Msk & ((value) << AC_WINCTRL_WINTSEL0_Pos)) -#define AC_WINCTRL_WINTSEL0_ABOVE_Val _U_(0x0) /**< \brief (AC_WINCTRL) Interrupt on signal above window */ -#define AC_WINCTRL_WINTSEL0_INSIDE_Val _U_(0x1) /**< \brief (AC_WINCTRL) Interrupt on signal inside window */ -#define AC_WINCTRL_WINTSEL0_BELOW_Val _U_(0x2) /**< \brief (AC_WINCTRL) Interrupt on signal below window */ -#define AC_WINCTRL_WINTSEL0_OUTSIDE_Val _U_(0x3) /**< \brief (AC_WINCTRL) Interrupt on signal outside window */ -#define AC_WINCTRL_WINTSEL0_ABOVE (AC_WINCTRL_WINTSEL0_ABOVE_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0_INSIDE (AC_WINCTRL_WINTSEL0_INSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0_BELOW (AC_WINCTRL_WINTSEL0_BELOW_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0_OUTSIDE (AC_WINCTRL_WINTSEL0_OUTSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_MASK _U_(0x07) /**< \brief (AC_WINCTRL) MASK Register */ - -/* -------- AC_COMPCTRL : (AC Offset: 0x10) (R/W 32) Comparator Control n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t ENABLE:1; /*!< bit: 0 Enable */ - uint32_t SINGLE:1; /*!< bit: 1 Single-Shot Mode */ - uint32_t SPEED:2; /*!< bit: 2.. 3 Speed Selection */ - uint32_t :1; /*!< bit: 4 Reserved */ - uint32_t INTSEL:2; /*!< bit: 5.. 6 Interrupt Selection */ - uint32_t :1; /*!< bit: 7 Reserved */ - uint32_t MUXNEG:3; /*!< bit: 8..10 Negative Input Mux Selection */ - uint32_t :1; /*!< bit: 11 Reserved */ - uint32_t MUXPOS:2; /*!< bit: 12..13 Positive Input Mux Selection */ - uint32_t :1; /*!< bit: 14 Reserved */ - uint32_t SWAP:1; /*!< bit: 15 Swap Inputs and Invert */ - uint32_t OUT:2; /*!< bit: 16..17 Output */ - uint32_t :1; /*!< bit: 18 Reserved */ - uint32_t HYST:1; /*!< bit: 19 Hysteresis Enable */ - uint32_t :4; /*!< bit: 20..23 Reserved */ - uint32_t FLEN:3; /*!< bit: 24..26 Filter Length */ - uint32_t :5; /*!< bit: 27..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} AC_COMPCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_COMPCTRL_OFFSET 0x10 /**< \brief (AC_COMPCTRL offset) Comparator Control n */ -#define AC_COMPCTRL_RESETVALUE _U_(0x00000000) /**< \brief (AC_COMPCTRL reset_value) Comparator Control n */ - -#define AC_COMPCTRL_ENABLE_Pos 0 /**< \brief (AC_COMPCTRL) Enable */ -#define AC_COMPCTRL_ENABLE (_U_(0x1) << AC_COMPCTRL_ENABLE_Pos) -#define AC_COMPCTRL_SINGLE_Pos 1 /**< \brief (AC_COMPCTRL) Single-Shot Mode */ -#define AC_COMPCTRL_SINGLE (_U_(0x1) << AC_COMPCTRL_SINGLE_Pos) -#define AC_COMPCTRL_SPEED_Pos 2 /**< \brief (AC_COMPCTRL) Speed Selection */ -#define AC_COMPCTRL_SPEED_Msk (_U_(0x3) << AC_COMPCTRL_SPEED_Pos) -#define AC_COMPCTRL_SPEED(value) (AC_COMPCTRL_SPEED_Msk & ((value) << AC_COMPCTRL_SPEED_Pos)) -#define AC_COMPCTRL_SPEED_LOW_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Low speed */ -#define AC_COMPCTRL_SPEED_HIGH_Val _U_(0x1) /**< \brief (AC_COMPCTRL) High speed */ -#define AC_COMPCTRL_SPEED_LOW (AC_COMPCTRL_SPEED_LOW_Val << AC_COMPCTRL_SPEED_Pos) -#define AC_COMPCTRL_SPEED_HIGH (AC_COMPCTRL_SPEED_HIGH_Val << AC_COMPCTRL_SPEED_Pos) -#define AC_COMPCTRL_INTSEL_Pos 5 /**< \brief (AC_COMPCTRL) Interrupt Selection */ -#define AC_COMPCTRL_INTSEL_Msk (_U_(0x3) << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL(value) (AC_COMPCTRL_INTSEL_Msk & ((value) << AC_COMPCTRL_INTSEL_Pos)) -#define AC_COMPCTRL_INTSEL_TOGGLE_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Interrupt on comparator output toggle */ -#define AC_COMPCTRL_INTSEL_RISING_Val _U_(0x1) /**< \brief (AC_COMPCTRL) Interrupt on comparator output rising */ -#define AC_COMPCTRL_INTSEL_FALLING_Val _U_(0x2) /**< \brief (AC_COMPCTRL) Interrupt on comparator output falling */ -#define AC_COMPCTRL_INTSEL_EOC_Val _U_(0x3) /**< \brief (AC_COMPCTRL) Interrupt on end of comparison (single-shot mode only) */ -#define AC_COMPCTRL_INTSEL_TOGGLE (AC_COMPCTRL_INTSEL_TOGGLE_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL_RISING (AC_COMPCTRL_INTSEL_RISING_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL_FALLING (AC_COMPCTRL_INTSEL_FALLING_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL_EOC (AC_COMPCTRL_INTSEL_EOC_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_MUXNEG_Pos 8 /**< \brief (AC_COMPCTRL) Negative Input Mux Selection */ -#define AC_COMPCTRL_MUXNEG_Msk (_U_(0x7) << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG(value) (AC_COMPCTRL_MUXNEG_Msk & ((value) << AC_COMPCTRL_MUXNEG_Pos)) -#define AC_COMPCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ -#define AC_COMPCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ -#define AC_COMPCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ -#define AC_COMPCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ -#define AC_COMPCTRL_MUXNEG_GND_Val _U_(0x4) /**< \brief (AC_COMPCTRL) Ground */ -#define AC_COMPCTRL_MUXNEG_VSCALE_Val _U_(0x5) /**< \brief (AC_COMPCTRL) VDD scaler */ -#define AC_COMPCTRL_MUXNEG_BANDGAP_Val _U_(0x6) /**< \brief (AC_COMPCTRL) Internal bandgap voltage */ -#define AC_COMPCTRL_MUXNEG_DAC_Val _U_(0x7) /**< \brief (AC_COMPCTRL) DAC output */ -#define AC_COMPCTRL_MUXNEG_PIN0 (AC_COMPCTRL_MUXNEG_PIN0_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_PIN1 (AC_COMPCTRL_MUXNEG_PIN1_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_PIN2 (AC_COMPCTRL_MUXNEG_PIN2_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_PIN3 (AC_COMPCTRL_MUXNEG_PIN3_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_GND (AC_COMPCTRL_MUXNEG_GND_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_VSCALE (AC_COMPCTRL_MUXNEG_VSCALE_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_BANDGAP (AC_COMPCTRL_MUXNEG_BANDGAP_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_DAC (AC_COMPCTRL_MUXNEG_DAC_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXPOS_Pos 12 /**< \brief (AC_COMPCTRL) Positive Input Mux Selection */ -#define AC_COMPCTRL_MUXPOS_Msk (_U_(0x3) << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS(value) (AC_COMPCTRL_MUXPOS_Msk & ((value) << AC_COMPCTRL_MUXPOS_Pos)) -#define AC_COMPCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ -#define AC_COMPCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ -#define AC_COMPCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ -#define AC_COMPCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ -#define AC_COMPCTRL_MUXPOS_PIN0 (AC_COMPCTRL_MUXPOS_PIN0_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_PIN1 (AC_COMPCTRL_MUXPOS_PIN1_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_PIN2 (AC_COMPCTRL_MUXPOS_PIN2_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_PIN3 (AC_COMPCTRL_MUXPOS_PIN3_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_SWAP_Pos 15 /**< \brief (AC_COMPCTRL) Swap Inputs and Invert */ -#define AC_COMPCTRL_SWAP (_U_(0x1) << AC_COMPCTRL_SWAP_Pos) -#define AC_COMPCTRL_OUT_Pos 16 /**< \brief (AC_COMPCTRL) Output */ -#define AC_COMPCTRL_OUT_Msk (_U_(0x3) << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_OUT(value) (AC_COMPCTRL_OUT_Msk & ((value) << AC_COMPCTRL_OUT_Pos)) -#define AC_COMPCTRL_OUT_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) The output of COMPn is not routed to the COMPn I/O port */ -#define AC_COMPCTRL_OUT_ASYNC_Val _U_(0x1) /**< \brief (AC_COMPCTRL) The asynchronous output of COMPn is routed to the COMPn I/O port */ -#define AC_COMPCTRL_OUT_SYNC_Val _U_(0x2) /**< \brief (AC_COMPCTRL) The synchronous output (including filtering) of COMPn is routed to the COMPn I/O port */ -#define AC_COMPCTRL_OUT_OFF (AC_COMPCTRL_OUT_OFF_Val << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_OUT_ASYNC (AC_COMPCTRL_OUT_ASYNC_Val << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_OUT_SYNC (AC_COMPCTRL_OUT_SYNC_Val << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_HYST_Pos 19 /**< \brief (AC_COMPCTRL) Hysteresis Enable */ -#define AC_COMPCTRL_HYST (_U_(0x1) << AC_COMPCTRL_HYST_Pos) -#define AC_COMPCTRL_FLEN_Pos 24 /**< \brief (AC_COMPCTRL) Filter Length */ -#define AC_COMPCTRL_FLEN_Msk (_U_(0x7) << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_FLEN(value) (AC_COMPCTRL_FLEN_Msk & ((value) << AC_COMPCTRL_FLEN_Pos)) -#define AC_COMPCTRL_FLEN_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) No filtering */ -#define AC_COMPCTRL_FLEN_MAJ3_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 3-bit majority function (2 of 3) */ -#define AC_COMPCTRL_FLEN_MAJ5_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 5-bit majority function (3 of 5) */ -#define AC_COMPCTRL_FLEN_OFF (AC_COMPCTRL_FLEN_OFF_Val << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_FLEN_MAJ3 (AC_COMPCTRL_FLEN_MAJ3_Val << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_FLEN_MAJ5 (AC_COMPCTRL_FLEN_MAJ5_Val << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_MASK _U_(0x070BB76F) /**< \brief (AC_COMPCTRL) MASK Register */ - -/* -------- AC_SCALER : (AC Offset: 0x20) (R/W 8) Scaler n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t VALUE:6; /*!< bit: 0.. 5 Scaler Value */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_SCALER_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_SCALER_OFFSET 0x20 /**< \brief (AC_SCALER offset) Scaler n */ -#define AC_SCALER_RESETVALUE _U_(0x00) /**< \brief (AC_SCALER reset_value) Scaler n */ - -#define AC_SCALER_VALUE_Pos 0 /**< \brief (AC_SCALER) Scaler Value */ -#define AC_SCALER_VALUE_Msk (_U_(0x3F) << AC_SCALER_VALUE_Pos) -#define AC_SCALER_VALUE(value) (AC_SCALER_VALUE_Msk & ((value) << AC_SCALER_VALUE_Pos)) -#define AC_SCALER_MASK _U_(0x3F) /**< \brief (AC_SCALER) MASK Register */ - -/** \brief AC hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO AC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ - __O AC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 ( /W 8) Control B */ - __IO AC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 16) Event Control */ - __IO AC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ - __IO AC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ - __IO AC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ - RoReg8 Reserved1[0x1]; - __I AC_STATUSA_Type STATUSA; /**< \brief Offset: 0x08 (R/ 8) Status A */ - __I AC_STATUSB_Type STATUSB; /**< \brief Offset: 0x09 (R/ 8) Status B */ - __I AC_STATUSC_Type STATUSC; /**< \brief Offset: 0x0A (R/ 8) Status C */ - RoReg8 Reserved2[0x1]; - __IO AC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x0C (R/W 8) Window Control */ - RoReg8 Reserved3[0x3]; - __IO AC_COMPCTRL_Type COMPCTRL[2]; /**< \brief Offset: 0x10 (R/W 32) Comparator Control n */ - RoReg8 Reserved4[0x8]; - __IO AC_SCALER_Type SCALER[2]; /**< \brief Offset: 0x20 (R/W 8) Scaler n */ -} Ac; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD21_AC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for AC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21_AC_COMPONENT_ +#define _SAMD21_AC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR AC */ +/* ========================================================================== */ +/** \addtogroup SAMD21_AC Analog Comparators */ +/*@{*/ + +#define AC_U2205 +#define REV_AC 0x111 + +/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */ + uint8_t :4; /*!< bit: 3.. 6 Reserved */ + uint8_t LPMUX:1; /*!< bit: 7 Low-Power Mux */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CTRLA_OFFSET 0x00 /**< \brief (AC_CTRLA offset) Control A */ +#define AC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLA reset_value) Control A */ + +#define AC_CTRLA_SWRST_Pos 0 /**< \brief (AC_CTRLA) Software Reset */ +#define AC_CTRLA_SWRST (_U_(0x1) << AC_CTRLA_SWRST_Pos) +#define AC_CTRLA_ENABLE_Pos 1 /**< \brief (AC_CTRLA) Enable */ +#define AC_CTRLA_ENABLE (_U_(0x1) << AC_CTRLA_ENABLE_Pos) +#define AC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (AC_CTRLA) Run in Standby */ +#define AC_CTRLA_RUNSTDBY_Msk (_U_(0x1) << AC_CTRLA_RUNSTDBY_Pos) +#define AC_CTRLA_RUNSTDBY(value) (AC_CTRLA_RUNSTDBY_Msk & ((value) << AC_CTRLA_RUNSTDBY_Pos)) +#define AC_CTRLA_LPMUX_Pos 7 /**< \brief (AC_CTRLA) Low-Power Mux */ +#define AC_CTRLA_LPMUX (_U_(0x1) << AC_CTRLA_LPMUX_Pos) +#define AC_CTRLA_MASK _U_(0x87) /**< \brief (AC_CTRLA) MASK Register */ + +/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t START0:1; /*!< bit: 0 Comparator 0 Start Comparison */ + uint8_t START1:1; /*!< bit: 1 Comparator 1 Start Comparison */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t START:2; /*!< bit: 0.. 1 Comparator x Start Comparison */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CTRLB_OFFSET 0x01 /**< \brief (AC_CTRLB offset) Control B */ +#define AC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLB reset_value) Control B */ + +#define AC_CTRLB_START0_Pos 0 /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */ +#define AC_CTRLB_START0 (_U_(1) << AC_CTRLB_START0_Pos) +#define AC_CTRLB_START1_Pos 1 /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */ +#define AC_CTRLB_START1 (_U_(1) << AC_CTRLB_START1_Pos) +#define AC_CTRLB_START_Pos 0 /**< \brief (AC_CTRLB) Comparator x Start Comparison */ +#define AC_CTRLB_START_Msk (_U_(0x3) << AC_CTRLB_START_Pos) +#define AC_CTRLB_START(value) (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos)) +#define AC_CTRLB_MASK _U_(0x03) /**< \brief (AC_CTRLB) MASK Register */ + +/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t COMPEO0:1; /*!< bit: 0 Comparator 0 Event Output Enable */ + uint16_t COMPEO1:1; /*!< bit: 1 Comparator 1 Event Output Enable */ + uint16_t :2; /*!< bit: 2.. 3 Reserved */ + uint16_t WINEO0:1; /*!< bit: 4 Window 0 Event Output Enable */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t COMPEI0:1; /*!< bit: 8 Comparator 0 Event Input */ + uint16_t COMPEI1:1; /*!< bit: 9 Comparator 1 Event Input */ + uint16_t :6; /*!< bit: 10..15 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint16_t COMPEO:2; /*!< bit: 0.. 1 Comparator x Event Output Enable */ + uint16_t :2; /*!< bit: 2.. 3 Reserved */ + uint16_t WINEO:1; /*!< bit: 4 Window x Event Output Enable */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t COMPEI:2; /*!< bit: 8.. 9 Comparator x Event Input */ + uint16_t :6; /*!< bit: 10..15 Reserved */ + } vec; /*!< Structure used for vec access */ + uint16_t reg; /*!< Type used for register access */ +} AC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_EVCTRL_OFFSET 0x02 /**< \brief (AC_EVCTRL offset) Event Control */ +#define AC_EVCTRL_RESETVALUE _U_(0x0000) /**< \brief (AC_EVCTRL reset_value) Event Control */ + +#define AC_EVCTRL_COMPEO0_Pos 0 /**< \brief (AC_EVCTRL) Comparator 0 Event Output Enable */ +#define AC_EVCTRL_COMPEO0 (_U_(1) << AC_EVCTRL_COMPEO0_Pos) +#define AC_EVCTRL_COMPEO1_Pos 1 /**< \brief (AC_EVCTRL) Comparator 1 Event Output Enable */ +#define AC_EVCTRL_COMPEO1 (_U_(1) << AC_EVCTRL_COMPEO1_Pos) +#define AC_EVCTRL_COMPEO_Pos 0 /**< \brief (AC_EVCTRL) Comparator x Event Output Enable */ +#define AC_EVCTRL_COMPEO_Msk (_U_(0x3) << AC_EVCTRL_COMPEO_Pos) +#define AC_EVCTRL_COMPEO(value) (AC_EVCTRL_COMPEO_Msk & ((value) << AC_EVCTRL_COMPEO_Pos)) +#define AC_EVCTRL_WINEO0_Pos 4 /**< \brief (AC_EVCTRL) Window 0 Event Output Enable */ +#define AC_EVCTRL_WINEO0 (_U_(1) << AC_EVCTRL_WINEO0_Pos) +#define AC_EVCTRL_WINEO_Pos 4 /**< \brief (AC_EVCTRL) Window x Event Output Enable */ +#define AC_EVCTRL_WINEO_Msk (_U_(0x1) << AC_EVCTRL_WINEO_Pos) +#define AC_EVCTRL_WINEO(value) (AC_EVCTRL_WINEO_Msk & ((value) << AC_EVCTRL_WINEO_Pos)) +#define AC_EVCTRL_COMPEI0_Pos 8 /**< \brief (AC_EVCTRL) Comparator 0 Event Input */ +#define AC_EVCTRL_COMPEI0 (_U_(1) << AC_EVCTRL_COMPEI0_Pos) +#define AC_EVCTRL_COMPEI1_Pos 9 /**< \brief (AC_EVCTRL) Comparator 1 Event Input */ +#define AC_EVCTRL_COMPEI1 (_U_(1) << AC_EVCTRL_COMPEI1_Pos) +#define AC_EVCTRL_COMPEI_Pos 8 /**< \brief (AC_EVCTRL) Comparator x Event Input */ +#define AC_EVCTRL_COMPEI_Msk (_U_(0x3) << AC_EVCTRL_COMPEI_Pos) +#define AC_EVCTRL_COMPEI(value) (AC_EVCTRL_COMPEI_Msk & ((value) << AC_EVCTRL_COMPEI_Pos)) +#define AC_EVCTRL_MASK _U_(0x0313) /**< \brief (AC_EVCTRL) MASK Register */ + +/* -------- AC_INTENCLR : (AC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ + uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTENCLR_OFFSET 0x04 /**< \brief (AC_INTENCLR offset) Interrupt Enable Clear */ +#define AC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define AC_INTENCLR_COMP0_Pos 0 /**< \brief (AC_INTENCLR) Comparator 0 Interrupt Enable */ +#define AC_INTENCLR_COMP0 (_U_(1) << AC_INTENCLR_COMP0_Pos) +#define AC_INTENCLR_COMP1_Pos 1 /**< \brief (AC_INTENCLR) Comparator 1 Interrupt Enable */ +#define AC_INTENCLR_COMP1 (_U_(1) << AC_INTENCLR_COMP1_Pos) +#define AC_INTENCLR_COMP_Pos 0 /**< \brief (AC_INTENCLR) Comparator x Interrupt Enable */ +#define AC_INTENCLR_COMP_Msk (_U_(0x3) << AC_INTENCLR_COMP_Pos) +#define AC_INTENCLR_COMP(value) (AC_INTENCLR_COMP_Msk & ((value) << AC_INTENCLR_COMP_Pos)) +#define AC_INTENCLR_WIN0_Pos 4 /**< \brief (AC_INTENCLR) Window 0 Interrupt Enable */ +#define AC_INTENCLR_WIN0 (_U_(1) << AC_INTENCLR_WIN0_Pos) +#define AC_INTENCLR_WIN_Pos 4 /**< \brief (AC_INTENCLR) Window x Interrupt Enable */ +#define AC_INTENCLR_WIN_Msk (_U_(0x1) << AC_INTENCLR_WIN_Pos) +#define AC_INTENCLR_WIN(value) (AC_INTENCLR_WIN_Msk & ((value) << AC_INTENCLR_WIN_Pos)) +#define AC_INTENCLR_MASK _U_(0x13) /**< \brief (AC_INTENCLR) MASK Register */ + +/* -------- AC_INTENSET : (AC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ + uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTENSET_OFFSET 0x05 /**< \brief (AC_INTENSET offset) Interrupt Enable Set */ +#define AC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AC_INTENSET reset_value) Interrupt Enable Set */ + +#define AC_INTENSET_COMP0_Pos 0 /**< \brief (AC_INTENSET) Comparator 0 Interrupt Enable */ +#define AC_INTENSET_COMP0 (_U_(1) << AC_INTENSET_COMP0_Pos) +#define AC_INTENSET_COMP1_Pos 1 /**< \brief (AC_INTENSET) Comparator 1 Interrupt Enable */ +#define AC_INTENSET_COMP1 (_U_(1) << AC_INTENSET_COMP1_Pos) +#define AC_INTENSET_COMP_Pos 0 /**< \brief (AC_INTENSET) Comparator x Interrupt Enable */ +#define AC_INTENSET_COMP_Msk (_U_(0x3) << AC_INTENSET_COMP_Pos) +#define AC_INTENSET_COMP(value) (AC_INTENSET_COMP_Msk & ((value) << AC_INTENSET_COMP_Pos)) +#define AC_INTENSET_WIN0_Pos 4 /**< \brief (AC_INTENSET) Window 0 Interrupt Enable */ +#define AC_INTENSET_WIN0 (_U_(1) << AC_INTENSET_WIN0_Pos) +#define AC_INTENSET_WIN_Pos 4 /**< \brief (AC_INTENSET) Window x Interrupt Enable */ +#define AC_INTENSET_WIN_Msk (_U_(0x1) << AC_INTENSET_WIN_Pos) +#define AC_INTENSET_WIN(value) (AC_INTENSET_WIN_Msk & ((value) << AC_INTENSET_WIN_Pos)) +#define AC_INTENSET_MASK _U_(0x13) /**< \brief (AC_INTENSET) MASK Register */ + +/* -------- AC_INTFLAG : (AC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t COMP0:1; /*!< bit: 0 Comparator 0 */ + __I uint8_t COMP1:1; /*!< bit: 1 Comparator 1 */ + __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ + __I uint8_t WIN0:1; /*!< bit: 4 Window 0 */ + __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + __I uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x */ + __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ + __I uint8_t WIN:1; /*!< bit: 4 Window x */ + __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTFLAG_OFFSET 0x06 /**< \brief (AC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define AC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define AC_INTFLAG_COMP0_Pos 0 /**< \brief (AC_INTFLAG) Comparator 0 */ +#define AC_INTFLAG_COMP0 (_U_(1) << AC_INTFLAG_COMP0_Pos) +#define AC_INTFLAG_COMP1_Pos 1 /**< \brief (AC_INTFLAG) Comparator 1 */ +#define AC_INTFLAG_COMP1 (_U_(1) << AC_INTFLAG_COMP1_Pos) +#define AC_INTFLAG_COMP_Pos 0 /**< \brief (AC_INTFLAG) Comparator x */ +#define AC_INTFLAG_COMP_Msk (_U_(0x3) << AC_INTFLAG_COMP_Pos) +#define AC_INTFLAG_COMP(value) (AC_INTFLAG_COMP_Msk & ((value) << AC_INTFLAG_COMP_Pos)) +#define AC_INTFLAG_WIN0_Pos 4 /**< \brief (AC_INTFLAG) Window 0 */ +#define AC_INTFLAG_WIN0 (_U_(1) << AC_INTFLAG_WIN0_Pos) +#define AC_INTFLAG_WIN_Pos 4 /**< \brief (AC_INTFLAG) Window x */ +#define AC_INTFLAG_WIN_Msk (_U_(0x1) << AC_INTFLAG_WIN_Pos) +#define AC_INTFLAG_WIN(value) (AC_INTFLAG_WIN_Msk & ((value) << AC_INTFLAG_WIN_Pos)) +#define AC_INTFLAG_MASK _U_(0x13) /**< \brief (AC_INTFLAG) MASK Register */ + +/* -------- AC_STATUSA : (AC Offset: 0x08) (R/ 8) Status A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ + uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSA_OFFSET 0x08 /**< \brief (AC_STATUSA offset) Status A */ +#define AC_STATUSA_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSA reset_value) Status A */ + +#define AC_STATUSA_STATE0_Pos 0 /**< \brief (AC_STATUSA) Comparator 0 Current State */ +#define AC_STATUSA_STATE0 (_U_(1) << AC_STATUSA_STATE0_Pos) +#define AC_STATUSA_STATE1_Pos 1 /**< \brief (AC_STATUSA) Comparator 1 Current State */ +#define AC_STATUSA_STATE1 (_U_(1) << AC_STATUSA_STATE1_Pos) +#define AC_STATUSA_STATE_Pos 0 /**< \brief (AC_STATUSA) Comparator x Current State */ +#define AC_STATUSA_STATE_Msk (_U_(0x3) << AC_STATUSA_STATE_Pos) +#define AC_STATUSA_STATE(value) (AC_STATUSA_STATE_Msk & ((value) << AC_STATUSA_STATE_Pos)) +#define AC_STATUSA_WSTATE0_Pos 4 /**< \brief (AC_STATUSA) Window 0 Current State */ +#define AC_STATUSA_WSTATE0_Msk (_U_(0x3) << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0(value) (AC_STATUSA_WSTATE0_Msk & ((value) << AC_STATUSA_WSTATE0_Pos)) +#define AC_STATUSA_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSA) Signal is above window */ +#define AC_STATUSA_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSA) Signal is inside window */ +#define AC_STATUSA_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSA) Signal is below window */ +#define AC_STATUSA_WSTATE0_ABOVE (AC_STATUSA_WSTATE0_ABOVE_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0_INSIDE (AC_STATUSA_WSTATE0_INSIDE_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0_BELOW (AC_STATUSA_WSTATE0_BELOW_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_MASK _U_(0x33) /**< \brief (AC_STATUSA) MASK Register */ + +/* -------- AC_STATUSB : (AC Offset: 0x09) (R/ 8) Status B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t READY0:1; /*!< bit: 0 Comparator 0 Ready */ + uint8_t READY1:1; /*!< bit: 1 Comparator 1 Ready */ + uint8_t :5; /*!< bit: 2.. 6 Reserved */ + uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t READY:2; /*!< bit: 0.. 1 Comparator x Ready */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSB_OFFSET 0x09 /**< \brief (AC_STATUSB offset) Status B */ +#define AC_STATUSB_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSB reset_value) Status B */ + +#define AC_STATUSB_READY0_Pos 0 /**< \brief (AC_STATUSB) Comparator 0 Ready */ +#define AC_STATUSB_READY0 (_U_(1) << AC_STATUSB_READY0_Pos) +#define AC_STATUSB_READY1_Pos 1 /**< \brief (AC_STATUSB) Comparator 1 Ready */ +#define AC_STATUSB_READY1 (_U_(1) << AC_STATUSB_READY1_Pos) +#define AC_STATUSB_READY_Pos 0 /**< \brief (AC_STATUSB) Comparator x Ready */ +#define AC_STATUSB_READY_Msk (_U_(0x3) << AC_STATUSB_READY_Pos) +#define AC_STATUSB_READY(value) (AC_STATUSB_READY_Msk & ((value) << AC_STATUSB_READY_Pos)) +#define AC_STATUSB_SYNCBUSY_Pos 7 /**< \brief (AC_STATUSB) Synchronization Busy */ +#define AC_STATUSB_SYNCBUSY (_U_(0x1) << AC_STATUSB_SYNCBUSY_Pos) +#define AC_STATUSB_MASK _U_(0x83) /**< \brief (AC_STATUSB) MASK Register */ + +/* -------- AC_STATUSC : (AC Offset: 0x0A) (R/ 8) Status C -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ + uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSC_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSC_OFFSET 0x0A /**< \brief (AC_STATUSC offset) Status C */ +#define AC_STATUSC_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSC reset_value) Status C */ + +#define AC_STATUSC_STATE0_Pos 0 /**< \brief (AC_STATUSC) Comparator 0 Current State */ +#define AC_STATUSC_STATE0 (_U_(1) << AC_STATUSC_STATE0_Pos) +#define AC_STATUSC_STATE1_Pos 1 /**< \brief (AC_STATUSC) Comparator 1 Current State */ +#define AC_STATUSC_STATE1 (_U_(1) << AC_STATUSC_STATE1_Pos) +#define AC_STATUSC_STATE_Pos 0 /**< \brief (AC_STATUSC) Comparator x Current State */ +#define AC_STATUSC_STATE_Msk (_U_(0x3) << AC_STATUSC_STATE_Pos) +#define AC_STATUSC_STATE(value) (AC_STATUSC_STATE_Msk & ((value) << AC_STATUSC_STATE_Pos)) +#define AC_STATUSC_WSTATE0_Pos 4 /**< \brief (AC_STATUSC) Window 0 Current State */ +#define AC_STATUSC_WSTATE0_Msk (_U_(0x3) << AC_STATUSC_WSTATE0_Pos) +#define AC_STATUSC_WSTATE0(value) (AC_STATUSC_WSTATE0_Msk & ((value) << AC_STATUSC_WSTATE0_Pos)) +#define AC_STATUSC_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSC) Signal is above window */ +#define AC_STATUSC_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSC) Signal is inside window */ +#define AC_STATUSC_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSC) Signal is below window */ +#define AC_STATUSC_WSTATE0_ABOVE (AC_STATUSC_WSTATE0_ABOVE_Val << AC_STATUSC_WSTATE0_Pos) +#define AC_STATUSC_WSTATE0_INSIDE (AC_STATUSC_WSTATE0_INSIDE_Val << AC_STATUSC_WSTATE0_Pos) +#define AC_STATUSC_WSTATE0_BELOW (AC_STATUSC_WSTATE0_BELOW_Val << AC_STATUSC_WSTATE0_Pos) +#define AC_STATUSC_MASK _U_(0x33) /**< \brief (AC_STATUSC) MASK Register */ + +/* -------- AC_WINCTRL : (AC Offset: 0x0C) (R/W 8) Window Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t WEN0:1; /*!< bit: 0 Window 0 Mode Enable */ + uint8_t WINTSEL0:2; /*!< bit: 1.. 2 Window 0 Interrupt Selection */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_WINCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_WINCTRL_OFFSET 0x0C /**< \brief (AC_WINCTRL offset) Window Control */ +#define AC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_WINCTRL reset_value) Window Control */ + +#define AC_WINCTRL_WEN0_Pos 0 /**< \brief (AC_WINCTRL) Window 0 Mode Enable */ +#define AC_WINCTRL_WEN0 (_U_(0x1) << AC_WINCTRL_WEN0_Pos) +#define AC_WINCTRL_WINTSEL0_Pos 1 /**< \brief (AC_WINCTRL) Window 0 Interrupt Selection */ +#define AC_WINCTRL_WINTSEL0_Msk (_U_(0x3) << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0(value) (AC_WINCTRL_WINTSEL0_Msk & ((value) << AC_WINCTRL_WINTSEL0_Pos)) +#define AC_WINCTRL_WINTSEL0_ABOVE_Val _U_(0x0) /**< \brief (AC_WINCTRL) Interrupt on signal above window */ +#define AC_WINCTRL_WINTSEL0_INSIDE_Val _U_(0x1) /**< \brief (AC_WINCTRL) Interrupt on signal inside window */ +#define AC_WINCTRL_WINTSEL0_BELOW_Val _U_(0x2) /**< \brief (AC_WINCTRL) Interrupt on signal below window */ +#define AC_WINCTRL_WINTSEL0_OUTSIDE_Val _U_(0x3) /**< \brief (AC_WINCTRL) Interrupt on signal outside window */ +#define AC_WINCTRL_WINTSEL0_ABOVE (AC_WINCTRL_WINTSEL0_ABOVE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_INSIDE (AC_WINCTRL_WINTSEL0_INSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_BELOW (AC_WINCTRL_WINTSEL0_BELOW_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_OUTSIDE (AC_WINCTRL_WINTSEL0_OUTSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_MASK _U_(0x07) /**< \brief (AC_WINCTRL) MASK Register */ + +/* -------- AC_COMPCTRL : (AC Offset: 0x10) (R/W 32) Comparator Control n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t ENABLE:1; /*!< bit: 0 Enable */ + uint32_t SINGLE:1; /*!< bit: 1 Single-Shot Mode */ + uint32_t SPEED:2; /*!< bit: 2.. 3 Speed Selection */ + uint32_t :1; /*!< bit: 4 Reserved */ + uint32_t INTSEL:2; /*!< bit: 5.. 6 Interrupt Selection */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t MUXNEG:3; /*!< bit: 8..10 Negative Input Mux Selection */ + uint32_t :1; /*!< bit: 11 Reserved */ + uint32_t MUXPOS:2; /*!< bit: 12..13 Positive Input Mux Selection */ + uint32_t :1; /*!< bit: 14 Reserved */ + uint32_t SWAP:1; /*!< bit: 15 Swap Inputs and Invert */ + uint32_t OUT:2; /*!< bit: 16..17 Output */ + uint32_t :1; /*!< bit: 18 Reserved */ + uint32_t HYST:1; /*!< bit: 19 Hysteresis Enable */ + uint32_t :4; /*!< bit: 20..23 Reserved */ + uint32_t FLEN:3; /*!< bit: 24..26 Filter Length */ + uint32_t :5; /*!< bit: 27..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} AC_COMPCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_COMPCTRL_OFFSET 0x10 /**< \brief (AC_COMPCTRL offset) Comparator Control n */ +#define AC_COMPCTRL_RESETVALUE _U_(0x00000000) /**< \brief (AC_COMPCTRL reset_value) Comparator Control n */ + +#define AC_COMPCTRL_ENABLE_Pos 0 /**< \brief (AC_COMPCTRL) Enable */ +#define AC_COMPCTRL_ENABLE (_U_(0x1) << AC_COMPCTRL_ENABLE_Pos) +#define AC_COMPCTRL_SINGLE_Pos 1 /**< \brief (AC_COMPCTRL) Single-Shot Mode */ +#define AC_COMPCTRL_SINGLE (_U_(0x1) << AC_COMPCTRL_SINGLE_Pos) +#define AC_COMPCTRL_SPEED_Pos 2 /**< \brief (AC_COMPCTRL) Speed Selection */ +#define AC_COMPCTRL_SPEED_Msk (_U_(0x3) << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_SPEED(value) (AC_COMPCTRL_SPEED_Msk & ((value) << AC_COMPCTRL_SPEED_Pos)) +#define AC_COMPCTRL_SPEED_LOW_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Low speed */ +#define AC_COMPCTRL_SPEED_HIGH_Val _U_(0x1) /**< \brief (AC_COMPCTRL) High speed */ +#define AC_COMPCTRL_SPEED_LOW (AC_COMPCTRL_SPEED_LOW_Val << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_SPEED_HIGH (AC_COMPCTRL_SPEED_HIGH_Val << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_INTSEL_Pos 5 /**< \brief (AC_COMPCTRL) Interrupt Selection */ +#define AC_COMPCTRL_INTSEL_Msk (_U_(0x3) << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL(value) (AC_COMPCTRL_INTSEL_Msk & ((value) << AC_COMPCTRL_INTSEL_Pos)) +#define AC_COMPCTRL_INTSEL_TOGGLE_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Interrupt on comparator output toggle */ +#define AC_COMPCTRL_INTSEL_RISING_Val _U_(0x1) /**< \brief (AC_COMPCTRL) Interrupt on comparator output rising */ +#define AC_COMPCTRL_INTSEL_FALLING_Val _U_(0x2) /**< \brief (AC_COMPCTRL) Interrupt on comparator output falling */ +#define AC_COMPCTRL_INTSEL_EOC_Val _U_(0x3) /**< \brief (AC_COMPCTRL) Interrupt on end of comparison (single-shot mode only) */ +#define AC_COMPCTRL_INTSEL_TOGGLE (AC_COMPCTRL_INTSEL_TOGGLE_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_RISING (AC_COMPCTRL_INTSEL_RISING_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_FALLING (AC_COMPCTRL_INTSEL_FALLING_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_EOC (AC_COMPCTRL_INTSEL_EOC_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_MUXNEG_Pos 8 /**< \brief (AC_COMPCTRL) Negative Input Mux Selection */ +#define AC_COMPCTRL_MUXNEG_Msk (_U_(0x7) << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG(value) (AC_COMPCTRL_MUXNEG_Msk & ((value) << AC_COMPCTRL_MUXNEG_Pos)) +#define AC_COMPCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ +#define AC_COMPCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ +#define AC_COMPCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ +#define AC_COMPCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ +#define AC_COMPCTRL_MUXNEG_GND_Val _U_(0x4) /**< \brief (AC_COMPCTRL) Ground */ +#define AC_COMPCTRL_MUXNEG_VSCALE_Val _U_(0x5) /**< \brief (AC_COMPCTRL) VDD scaler */ +#define AC_COMPCTRL_MUXNEG_BANDGAP_Val _U_(0x6) /**< \brief (AC_COMPCTRL) Internal bandgap voltage */ +#define AC_COMPCTRL_MUXNEG_DAC_Val _U_(0x7) /**< \brief (AC_COMPCTRL) DAC output */ +#define AC_COMPCTRL_MUXNEG_PIN0 (AC_COMPCTRL_MUXNEG_PIN0_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN1 (AC_COMPCTRL_MUXNEG_PIN1_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN2 (AC_COMPCTRL_MUXNEG_PIN2_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN3 (AC_COMPCTRL_MUXNEG_PIN3_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_GND (AC_COMPCTRL_MUXNEG_GND_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_VSCALE (AC_COMPCTRL_MUXNEG_VSCALE_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_BANDGAP (AC_COMPCTRL_MUXNEG_BANDGAP_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_DAC (AC_COMPCTRL_MUXNEG_DAC_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXPOS_Pos 12 /**< \brief (AC_COMPCTRL) Positive Input Mux Selection */ +#define AC_COMPCTRL_MUXPOS_Msk (_U_(0x3) << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS(value) (AC_COMPCTRL_MUXPOS_Msk & ((value) << AC_COMPCTRL_MUXPOS_Pos)) +#define AC_COMPCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ +#define AC_COMPCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ +#define AC_COMPCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ +#define AC_COMPCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ +#define AC_COMPCTRL_MUXPOS_PIN0 (AC_COMPCTRL_MUXPOS_PIN0_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN1 (AC_COMPCTRL_MUXPOS_PIN1_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN2 (AC_COMPCTRL_MUXPOS_PIN2_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN3 (AC_COMPCTRL_MUXPOS_PIN3_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_SWAP_Pos 15 /**< \brief (AC_COMPCTRL) Swap Inputs and Invert */ +#define AC_COMPCTRL_SWAP (_U_(0x1) << AC_COMPCTRL_SWAP_Pos) +#define AC_COMPCTRL_OUT_Pos 16 /**< \brief (AC_COMPCTRL) Output */ +#define AC_COMPCTRL_OUT_Msk (_U_(0x3) << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT(value) (AC_COMPCTRL_OUT_Msk & ((value) << AC_COMPCTRL_OUT_Pos)) +#define AC_COMPCTRL_OUT_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) The output of COMPn is not routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_ASYNC_Val _U_(0x1) /**< \brief (AC_COMPCTRL) The asynchronous output of COMPn is routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_SYNC_Val _U_(0x2) /**< \brief (AC_COMPCTRL) The synchronous output (including filtering) of COMPn is routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_OFF (AC_COMPCTRL_OUT_OFF_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT_ASYNC (AC_COMPCTRL_OUT_ASYNC_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT_SYNC (AC_COMPCTRL_OUT_SYNC_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_HYST_Pos 19 /**< \brief (AC_COMPCTRL) Hysteresis Enable */ +#define AC_COMPCTRL_HYST (_U_(0x1) << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_FLEN_Pos 24 /**< \brief (AC_COMPCTRL) Filter Length */ +#define AC_COMPCTRL_FLEN_Msk (_U_(0x7) << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN(value) (AC_COMPCTRL_FLEN_Msk & ((value) << AC_COMPCTRL_FLEN_Pos)) +#define AC_COMPCTRL_FLEN_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) No filtering */ +#define AC_COMPCTRL_FLEN_MAJ3_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 3-bit majority function (2 of 3) */ +#define AC_COMPCTRL_FLEN_MAJ5_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 5-bit majority function (3 of 5) */ +#define AC_COMPCTRL_FLEN_OFF (AC_COMPCTRL_FLEN_OFF_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN_MAJ3 (AC_COMPCTRL_FLEN_MAJ3_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN_MAJ5 (AC_COMPCTRL_FLEN_MAJ5_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_MASK _U_(0x070BB76F) /**< \brief (AC_COMPCTRL) MASK Register */ + +/* -------- AC_SCALER : (AC Offset: 0x20) (R/W 8) Scaler n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t VALUE:6; /*!< bit: 0.. 5 Scaler Value */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_SCALER_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_SCALER_OFFSET 0x20 /**< \brief (AC_SCALER offset) Scaler n */ +#define AC_SCALER_RESETVALUE _U_(0x00) /**< \brief (AC_SCALER reset_value) Scaler n */ + +#define AC_SCALER_VALUE_Pos 0 /**< \brief (AC_SCALER) Scaler Value */ +#define AC_SCALER_VALUE_Msk (_U_(0x3F) << AC_SCALER_VALUE_Pos) +#define AC_SCALER_VALUE(value) (AC_SCALER_VALUE_Msk & ((value) << AC_SCALER_VALUE_Pos)) +#define AC_SCALER_MASK _U_(0x3F) /**< \brief (AC_SCALER) MASK Register */ + +/** \brief AC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO AC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ + __O AC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 ( /W 8) Control B */ + __IO AC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 16) Event Control */ + __IO AC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ + __IO AC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ + __IO AC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ + RoReg8 Reserved1[0x1]; + __I AC_STATUSA_Type STATUSA; /**< \brief Offset: 0x08 (R/ 8) Status A */ + __I AC_STATUSB_Type STATUSB; /**< \brief Offset: 0x09 (R/ 8) Status B */ + __I AC_STATUSC_Type STATUSC; /**< \brief Offset: 0x0A (R/ 8) Status C */ + RoReg8 Reserved2[0x1]; + __IO AC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x0C (R/W 8) Window Control */ + RoReg8 Reserved3[0x3]; + __IO AC_COMPCTRL_Type COMPCTRL[2]; /**< \brief Offset: 0x10 (R/W 32) Comparator Control n */ + RoReg8 Reserved4[0x8]; + __IO AC_SCALER_Type SCALER[2]; /**< \brief Offset: 0x20 (R/W 8) Scaler n */ +} Ac; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD21_AC_COMPONENT_ */ diff --git a/lib/samd21/samd21a/include/component/adc.h b/lib/samd21/samd21a/include/component/adc.h index 4ed49e8..6f5a6b3 100644 --- a/lib/samd21/samd21a/include/component/adc.h +++ b/lib/samd21/samd21a/include/component/adc.h @@ -1,685 +1,685 @@ -/** - * \file - * - * \brief Component description for ADC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21_ADC_COMPONENT_ -#define _SAMD21_ADC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR ADC */ -/* ========================================================================== */ -/** \addtogroup SAMD21_ADC Analog Digital Converter */ -/*@{*/ - -#define ADC_U2204 -#define REV_ADC 0x120 - -/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 8) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Enable */ - uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_CTRLA_OFFSET 0x00 /**< \brief (ADC_CTRLA offset) Control A */ -#define ADC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (ADC_CTRLA reset_value) Control A */ - -#define ADC_CTRLA_SWRST_Pos 0 /**< \brief (ADC_CTRLA) Software Reset */ -#define ADC_CTRLA_SWRST (_U_(0x1) << ADC_CTRLA_SWRST_Pos) -#define ADC_CTRLA_ENABLE_Pos 1 /**< \brief (ADC_CTRLA) Enable */ -#define ADC_CTRLA_ENABLE (_U_(0x1) << ADC_CTRLA_ENABLE_Pos) -#define ADC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (ADC_CTRLA) Run in Standby */ -#define ADC_CTRLA_RUNSTDBY (_U_(0x1) << ADC_CTRLA_RUNSTDBY_Pos) -#define ADC_CTRLA_MASK _U_(0x07) /**< \brief (ADC_CTRLA) MASK Register */ - -/* -------- ADC_REFCTRL : (ADC Offset: 0x01) (R/W 8) Reference Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t REFSEL:4; /*!< bit: 0.. 3 Reference Selection */ - uint8_t :3; /*!< bit: 4.. 6 Reserved */ - uint8_t REFCOMP:1; /*!< bit: 7 Reference Buffer Offset Compensation Enable */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_REFCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_REFCTRL_OFFSET 0x01 /**< \brief (ADC_REFCTRL offset) Reference Control */ -#define ADC_REFCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_REFCTRL reset_value) Reference Control */ - -#define ADC_REFCTRL_REFSEL_Pos 0 /**< \brief (ADC_REFCTRL) Reference Selection */ -#define ADC_REFCTRL_REFSEL_Msk (_U_(0xF) << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL(value) (ADC_REFCTRL_REFSEL_Msk & ((value) << ADC_REFCTRL_REFSEL_Pos)) -#define ADC_REFCTRL_REFSEL_INT1V_Val _U_(0x0) /**< \brief (ADC_REFCTRL) 1.0V voltage reference */ -#define ADC_REFCTRL_REFSEL_INTVCC0_Val _U_(0x1) /**< \brief (ADC_REFCTRL) 1/1.48 VDDANA */ -#define ADC_REFCTRL_REFSEL_INTVCC1_Val _U_(0x2) /**< \brief (ADC_REFCTRL) 1/2 VDDANA (only for VDDANA > 2.0V) */ -#define ADC_REFCTRL_REFSEL_AREFA_Val _U_(0x3) /**< \brief (ADC_REFCTRL) External reference */ -#define ADC_REFCTRL_REFSEL_AREFB_Val _U_(0x4) /**< \brief (ADC_REFCTRL) External reference */ -#define ADC_REFCTRL_REFSEL_INT1V (ADC_REFCTRL_REFSEL_INT1V_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_INTVCC0 (ADC_REFCTRL_REFSEL_INTVCC0_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_INTVCC1 (ADC_REFCTRL_REFSEL_INTVCC1_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_AREFA (ADC_REFCTRL_REFSEL_AREFA_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_AREFB (ADC_REFCTRL_REFSEL_AREFB_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFCOMP_Pos 7 /**< \brief (ADC_REFCTRL) Reference Buffer Offset Compensation Enable */ -#define ADC_REFCTRL_REFCOMP (_U_(0x1) << ADC_REFCTRL_REFCOMP_Pos) -#define ADC_REFCTRL_MASK _U_(0x8F) /**< \brief (ADC_REFCTRL) MASK Register */ - -/* -------- ADC_AVGCTRL : (ADC Offset: 0x02) (R/W 8) Average Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SAMPLENUM:4; /*!< bit: 0.. 3 Number of Samples to be Collected */ - uint8_t ADJRES:3; /*!< bit: 4.. 6 Adjusting Result / Division Coefficient */ - uint8_t :1; /*!< bit: 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_AVGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_AVGCTRL_OFFSET 0x02 /**< \brief (ADC_AVGCTRL offset) Average Control */ -#define ADC_AVGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_AVGCTRL reset_value) Average Control */ - -#define ADC_AVGCTRL_SAMPLENUM_Pos 0 /**< \brief (ADC_AVGCTRL) Number of Samples to be Collected */ -#define ADC_AVGCTRL_SAMPLENUM_Msk (_U_(0xF) << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM(value) (ADC_AVGCTRL_SAMPLENUM_Msk & ((value) << ADC_AVGCTRL_SAMPLENUM_Pos)) -#define ADC_AVGCTRL_SAMPLENUM_1_Val _U_(0x0) /**< \brief (ADC_AVGCTRL) 1 sample */ -#define ADC_AVGCTRL_SAMPLENUM_2_Val _U_(0x1) /**< \brief (ADC_AVGCTRL) 2 samples */ -#define ADC_AVGCTRL_SAMPLENUM_4_Val _U_(0x2) /**< \brief (ADC_AVGCTRL) 4 samples */ -#define ADC_AVGCTRL_SAMPLENUM_8_Val _U_(0x3) /**< \brief (ADC_AVGCTRL) 8 samples */ -#define ADC_AVGCTRL_SAMPLENUM_16_Val _U_(0x4) /**< \brief (ADC_AVGCTRL) 16 samples */ -#define ADC_AVGCTRL_SAMPLENUM_32_Val _U_(0x5) /**< \brief (ADC_AVGCTRL) 32 samples */ -#define ADC_AVGCTRL_SAMPLENUM_64_Val _U_(0x6) /**< \brief (ADC_AVGCTRL) 64 samples */ -#define ADC_AVGCTRL_SAMPLENUM_128_Val _U_(0x7) /**< \brief (ADC_AVGCTRL) 128 samples */ -#define ADC_AVGCTRL_SAMPLENUM_256_Val _U_(0x8) /**< \brief (ADC_AVGCTRL) 256 samples */ -#define ADC_AVGCTRL_SAMPLENUM_512_Val _U_(0x9) /**< \brief (ADC_AVGCTRL) 512 samples */ -#define ADC_AVGCTRL_SAMPLENUM_1024_Val _U_(0xA) /**< \brief (ADC_AVGCTRL) 1024 samples */ -#define ADC_AVGCTRL_SAMPLENUM_1 (ADC_AVGCTRL_SAMPLENUM_1_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_2 (ADC_AVGCTRL_SAMPLENUM_2_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_4 (ADC_AVGCTRL_SAMPLENUM_4_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_8 (ADC_AVGCTRL_SAMPLENUM_8_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_16 (ADC_AVGCTRL_SAMPLENUM_16_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_32 (ADC_AVGCTRL_SAMPLENUM_32_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_64 (ADC_AVGCTRL_SAMPLENUM_64_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_128 (ADC_AVGCTRL_SAMPLENUM_128_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_256 (ADC_AVGCTRL_SAMPLENUM_256_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_512 (ADC_AVGCTRL_SAMPLENUM_512_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_1024 (ADC_AVGCTRL_SAMPLENUM_1024_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_ADJRES_Pos 4 /**< \brief (ADC_AVGCTRL) Adjusting Result / Division Coefficient */ -#define ADC_AVGCTRL_ADJRES_Msk (_U_(0x7) << ADC_AVGCTRL_ADJRES_Pos) -#define ADC_AVGCTRL_ADJRES(value) (ADC_AVGCTRL_ADJRES_Msk & ((value) << ADC_AVGCTRL_ADJRES_Pos)) -#define ADC_AVGCTRL_MASK _U_(0x7F) /**< \brief (ADC_AVGCTRL) MASK Register */ - -/* -------- ADC_SAMPCTRL : (ADC Offset: 0x03) (R/W 8) Sampling Time Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SAMPLEN:6; /*!< bit: 0.. 5 Sampling Time Length */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_SAMPCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_SAMPCTRL_OFFSET 0x03 /**< \brief (ADC_SAMPCTRL offset) Sampling Time Control */ -#define ADC_SAMPCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_SAMPCTRL reset_value) Sampling Time Control */ - -#define ADC_SAMPCTRL_SAMPLEN_Pos 0 /**< \brief (ADC_SAMPCTRL) Sampling Time Length */ -#define ADC_SAMPCTRL_SAMPLEN_Msk (_U_(0x3F) << ADC_SAMPCTRL_SAMPLEN_Pos) -#define ADC_SAMPCTRL_SAMPLEN(value) (ADC_SAMPCTRL_SAMPLEN_Msk & ((value) << ADC_SAMPCTRL_SAMPLEN_Pos)) -#define ADC_SAMPCTRL_MASK _U_(0x3F) /**< \brief (ADC_SAMPCTRL) MASK Register */ - -/* -------- ADC_CTRLB : (ADC Offset: 0x04) (R/W 16) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t DIFFMODE:1; /*!< bit: 0 Differential Mode */ - uint16_t LEFTADJ:1; /*!< bit: 1 Left-Adjusted Result */ - uint16_t FREERUN:1; /*!< bit: 2 Free Running Mode */ - uint16_t CORREN:1; /*!< bit: 3 Digital Correction Logic Enabled */ - uint16_t RESSEL:2; /*!< bit: 4.. 5 Conversion Result Resolution */ - uint16_t :2; /*!< bit: 6.. 7 Reserved */ - uint16_t PRESCALER:3; /*!< bit: 8..10 Prescaler Configuration */ - uint16_t :5; /*!< bit: 11..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_CTRLB_OFFSET 0x04 /**< \brief (ADC_CTRLB offset) Control B */ -#define ADC_CTRLB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLB reset_value) Control B */ - -#define ADC_CTRLB_DIFFMODE_Pos 0 /**< \brief (ADC_CTRLB) Differential Mode */ -#define ADC_CTRLB_DIFFMODE (_U_(0x1) << ADC_CTRLB_DIFFMODE_Pos) -#define ADC_CTRLB_LEFTADJ_Pos 1 /**< \brief (ADC_CTRLB) Left-Adjusted Result */ -#define ADC_CTRLB_LEFTADJ (_U_(0x1) << ADC_CTRLB_LEFTADJ_Pos) -#define ADC_CTRLB_FREERUN_Pos 2 /**< \brief (ADC_CTRLB) Free Running Mode */ -#define ADC_CTRLB_FREERUN (_U_(0x1) << ADC_CTRLB_FREERUN_Pos) -#define ADC_CTRLB_CORREN_Pos 3 /**< \brief (ADC_CTRLB) Digital Correction Logic Enabled */ -#define ADC_CTRLB_CORREN (_U_(0x1) << ADC_CTRLB_CORREN_Pos) -#define ADC_CTRLB_RESSEL_Pos 4 /**< \brief (ADC_CTRLB) Conversion Result Resolution */ -#define ADC_CTRLB_RESSEL_Msk (_U_(0x3) << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL(value) (ADC_CTRLB_RESSEL_Msk & ((value) << ADC_CTRLB_RESSEL_Pos)) -#define ADC_CTRLB_RESSEL_12BIT_Val _U_(0x0) /**< \brief (ADC_CTRLB) 12-bit result */ -#define ADC_CTRLB_RESSEL_16BIT_Val _U_(0x1) /**< \brief (ADC_CTRLB) For averaging mode output */ -#define ADC_CTRLB_RESSEL_10BIT_Val _U_(0x2) /**< \brief (ADC_CTRLB) 10-bit result */ -#define ADC_CTRLB_RESSEL_8BIT_Val _U_(0x3) /**< \brief (ADC_CTRLB) 8-bit result */ -#define ADC_CTRLB_RESSEL_12BIT (ADC_CTRLB_RESSEL_12BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL_16BIT (ADC_CTRLB_RESSEL_16BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL_10BIT (ADC_CTRLB_RESSEL_10BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL_8BIT (ADC_CTRLB_RESSEL_8BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_PRESCALER_Pos 8 /**< \brief (ADC_CTRLB) Prescaler Configuration */ -#define ADC_CTRLB_PRESCALER_Msk (_U_(0x7) << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER(value) (ADC_CTRLB_PRESCALER_Msk & ((value) << ADC_CTRLB_PRESCALER_Pos)) -#define ADC_CTRLB_PRESCALER_DIV4_Val _U_(0x0) /**< \brief (ADC_CTRLB) Peripheral clock divided by 4 */ -#define ADC_CTRLB_PRESCALER_DIV8_Val _U_(0x1) /**< \brief (ADC_CTRLB) Peripheral clock divided by 8 */ -#define ADC_CTRLB_PRESCALER_DIV16_Val _U_(0x2) /**< \brief (ADC_CTRLB) Peripheral clock divided by 16 */ -#define ADC_CTRLB_PRESCALER_DIV32_Val _U_(0x3) /**< \brief (ADC_CTRLB) Peripheral clock divided by 32 */ -#define ADC_CTRLB_PRESCALER_DIV64_Val _U_(0x4) /**< \brief (ADC_CTRLB) Peripheral clock divided by 64 */ -#define ADC_CTRLB_PRESCALER_DIV128_Val _U_(0x5) /**< \brief (ADC_CTRLB) Peripheral clock divided by 128 */ -#define ADC_CTRLB_PRESCALER_DIV256_Val _U_(0x6) /**< \brief (ADC_CTRLB) Peripheral clock divided by 256 */ -#define ADC_CTRLB_PRESCALER_DIV512_Val _U_(0x7) /**< \brief (ADC_CTRLB) Peripheral clock divided by 512 */ -#define ADC_CTRLB_PRESCALER_DIV4 (ADC_CTRLB_PRESCALER_DIV4_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV8 (ADC_CTRLB_PRESCALER_DIV8_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV16 (ADC_CTRLB_PRESCALER_DIV16_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV32 (ADC_CTRLB_PRESCALER_DIV32_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV64 (ADC_CTRLB_PRESCALER_DIV64_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV128 (ADC_CTRLB_PRESCALER_DIV128_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV256 (ADC_CTRLB_PRESCALER_DIV256_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_PRESCALER_DIV512 (ADC_CTRLB_PRESCALER_DIV512_Val << ADC_CTRLB_PRESCALER_Pos) -#define ADC_CTRLB_MASK _U_(0x073F) /**< \brief (ADC_CTRLB) MASK Register */ - -/* -------- ADC_WINCTRL : (ADC Offset: 0x08) (R/W 8) Window Monitor Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t WINMODE:3; /*!< bit: 0.. 2 Window Monitor Mode */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_WINCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_WINCTRL_OFFSET 0x08 /**< \brief (ADC_WINCTRL offset) Window Monitor Control */ -#define ADC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_WINCTRL reset_value) Window Monitor Control */ - -#define ADC_WINCTRL_WINMODE_Pos 0 /**< \brief (ADC_WINCTRL) Window Monitor Mode */ -#define ADC_WINCTRL_WINMODE_Msk (_U_(0x7) << ADC_WINCTRL_WINMODE_Pos) -#define ADC_WINCTRL_WINMODE(value) (ADC_WINCTRL_WINMODE_Msk & ((value) << ADC_WINCTRL_WINMODE_Pos)) -#define ADC_WINCTRL_WINMODE_DISABLE_Val _U_(0x0) /**< \brief (ADC_WINCTRL) No window mode (default) */ -#define ADC_WINCTRL_WINMODE_MODE1_Val _U_(0x1) /**< \brief (ADC_WINCTRL) Mode 1: RESULT > WINLT */ -#define ADC_WINCTRL_WINMODE_MODE2_Val _U_(0x2) /**< \brief (ADC_WINCTRL) Mode 2: RESULT < WINUT */ -#define ADC_WINCTRL_WINMODE_MODE3_Val _U_(0x3) /**< \brief (ADC_WINCTRL) Mode 3: WINLT < RESULT < WINUT */ -#define ADC_WINCTRL_WINMODE_MODE4_Val _U_(0x4) /**< \brief (ADC_WINCTRL) Mode 4: !(WINLT < RESULT < WINUT) */ -#define ADC_WINCTRL_WINMODE_DISABLE (ADC_WINCTRL_WINMODE_DISABLE_Val << ADC_WINCTRL_WINMODE_Pos) -#define ADC_WINCTRL_WINMODE_MODE1 (ADC_WINCTRL_WINMODE_MODE1_Val << ADC_WINCTRL_WINMODE_Pos) -#define ADC_WINCTRL_WINMODE_MODE2 (ADC_WINCTRL_WINMODE_MODE2_Val << ADC_WINCTRL_WINMODE_Pos) -#define ADC_WINCTRL_WINMODE_MODE3 (ADC_WINCTRL_WINMODE_MODE3_Val << ADC_WINCTRL_WINMODE_Pos) -#define ADC_WINCTRL_WINMODE_MODE4 (ADC_WINCTRL_WINMODE_MODE4_Val << ADC_WINCTRL_WINMODE_Pos) -#define ADC_WINCTRL_MASK _U_(0x07) /**< \brief (ADC_WINCTRL) MASK Register */ - -/* -------- ADC_SWTRIG : (ADC Offset: 0x0C) (R/W 8) Software Trigger -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t FLUSH:1; /*!< bit: 0 ADC Conversion Flush */ - uint8_t START:1; /*!< bit: 1 ADC Start Conversion */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_SWTRIG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_SWTRIG_OFFSET 0x0C /**< \brief (ADC_SWTRIG offset) Software Trigger */ -#define ADC_SWTRIG_RESETVALUE _U_(0x00) /**< \brief (ADC_SWTRIG reset_value) Software Trigger */ - -#define ADC_SWTRIG_FLUSH_Pos 0 /**< \brief (ADC_SWTRIG) ADC Conversion Flush */ -#define ADC_SWTRIG_FLUSH (_U_(0x1) << ADC_SWTRIG_FLUSH_Pos) -#define ADC_SWTRIG_START_Pos 1 /**< \brief (ADC_SWTRIG) ADC Start Conversion */ -#define ADC_SWTRIG_START (_U_(0x1) << ADC_SWTRIG_START_Pos) -#define ADC_SWTRIG_MASK _U_(0x03) /**< \brief (ADC_SWTRIG) MASK Register */ - -/* -------- ADC_INPUTCTRL : (ADC Offset: 0x10) (R/W 32) Input Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t MUXPOS:5; /*!< bit: 0.. 4 Positive Mux Input Selection */ - uint32_t :3; /*!< bit: 5.. 7 Reserved */ - uint32_t MUXNEG:5; /*!< bit: 8..12 Negative Mux Input Selection */ - uint32_t :3; /*!< bit: 13..15 Reserved */ - uint32_t INPUTSCAN:4; /*!< bit: 16..19 Number of Input Channels Included in Scan */ - uint32_t INPUTOFFSET:4; /*!< bit: 20..23 Positive Mux Setting Offset */ - uint32_t GAIN:4; /*!< bit: 24..27 Gain Factor Selection */ - uint32_t :4; /*!< bit: 28..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} ADC_INPUTCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INPUTCTRL_OFFSET 0x10 /**< \brief (ADC_INPUTCTRL offset) Input Control */ -#define ADC_INPUTCTRL_RESETVALUE _U_(0x00000000) /**< \brief (ADC_INPUTCTRL reset_value) Input Control */ - -#define ADC_INPUTCTRL_MUXPOS_Pos 0 /**< \brief (ADC_INPUTCTRL) Positive Mux Input Selection */ -#define ADC_INPUTCTRL_MUXPOS_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS(value) (ADC_INPUTCTRL_MUXPOS_Msk & ((value) << ADC_INPUTCTRL_MUXPOS_Pos)) -#define ADC_INPUTCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN8_Val _U_(0x8) /**< \brief (ADC_INPUTCTRL) ADC AIN8 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN9_Val _U_(0x9) /**< \brief (ADC_INPUTCTRL) ADC AIN9 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN10_Val _U_(0xA) /**< \brief (ADC_INPUTCTRL) ADC AIN10 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN11_Val _U_(0xB) /**< \brief (ADC_INPUTCTRL) ADC AIN11 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN12_Val _U_(0xC) /**< \brief (ADC_INPUTCTRL) ADC AIN12 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN13_Val _U_(0xD) /**< \brief (ADC_INPUTCTRL) ADC AIN13 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN14_Val _U_(0xE) /**< \brief (ADC_INPUTCTRL) ADC AIN14 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN15_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) ADC AIN15 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN16_Val _U_(0x10) /**< \brief (ADC_INPUTCTRL) ADC AIN16 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN17_Val _U_(0x11) /**< \brief (ADC_INPUTCTRL) ADC AIN17 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN18_Val _U_(0x12) /**< \brief (ADC_INPUTCTRL) ADC AIN18 Pin */ -#define ADC_INPUTCTRL_MUXPOS_PIN19_Val _U_(0x13) /**< \brief (ADC_INPUTCTRL) ADC AIN19 Pin */ -#define ADC_INPUTCTRL_MUXPOS_TEMP_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Temperature Reference */ -#define ADC_INPUTCTRL_MUXPOS_BANDGAP_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) Bandgap Voltage */ -#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val _U_(0x1A) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled Core Supply */ -#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val _U_(0x1B) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled I/O Supply */ -#define ADC_INPUTCTRL_MUXPOS_DAC_Val _U_(0x1C) /**< \brief (ADC_INPUTCTRL) DAC Output */ -#define ADC_INPUTCTRL_MUXPOS_PIN0 (ADC_INPUTCTRL_MUXPOS_PIN0_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN1 (ADC_INPUTCTRL_MUXPOS_PIN1_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN2 (ADC_INPUTCTRL_MUXPOS_PIN2_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN3 (ADC_INPUTCTRL_MUXPOS_PIN3_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN4 (ADC_INPUTCTRL_MUXPOS_PIN4_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN5 (ADC_INPUTCTRL_MUXPOS_PIN5_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN6 (ADC_INPUTCTRL_MUXPOS_PIN6_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN7 (ADC_INPUTCTRL_MUXPOS_PIN7_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN8 (ADC_INPUTCTRL_MUXPOS_PIN8_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN9 (ADC_INPUTCTRL_MUXPOS_PIN9_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN10 (ADC_INPUTCTRL_MUXPOS_PIN10_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN11 (ADC_INPUTCTRL_MUXPOS_PIN11_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN12 (ADC_INPUTCTRL_MUXPOS_PIN12_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN13 (ADC_INPUTCTRL_MUXPOS_PIN13_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN14 (ADC_INPUTCTRL_MUXPOS_PIN14_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN15 (ADC_INPUTCTRL_MUXPOS_PIN15_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN16 (ADC_INPUTCTRL_MUXPOS_PIN16_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN17 (ADC_INPUTCTRL_MUXPOS_PIN17_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN18 (ADC_INPUTCTRL_MUXPOS_PIN18_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PIN19 (ADC_INPUTCTRL_MUXPOS_PIN19_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_TEMP (ADC_INPUTCTRL_MUXPOS_TEMP_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_BANDGAP (ADC_INPUTCTRL_MUXPOS_BANDGAP_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC (ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC (ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_DAC (ADC_INPUTCTRL_MUXPOS_DAC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXNEG_Pos 8 /**< \brief (ADC_INPUTCTRL) Negative Mux Input Selection */ -#define ADC_INPUTCTRL_MUXNEG_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG(value) (ADC_INPUTCTRL_MUXNEG_Msk & ((value) << ADC_INPUTCTRL_MUXNEG_Pos)) -#define ADC_INPUTCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ -#define ADC_INPUTCTRL_MUXNEG_PIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ -#define ADC_INPUTCTRL_MUXNEG_GND_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Internal Ground */ -#define ADC_INPUTCTRL_MUXNEG_IOGND_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) I/O Ground */ -#define ADC_INPUTCTRL_MUXNEG_PIN0 (ADC_INPUTCTRL_MUXNEG_PIN0_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN1 (ADC_INPUTCTRL_MUXNEG_PIN1_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN2 (ADC_INPUTCTRL_MUXNEG_PIN2_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN3 (ADC_INPUTCTRL_MUXNEG_PIN3_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN4 (ADC_INPUTCTRL_MUXNEG_PIN4_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN5 (ADC_INPUTCTRL_MUXNEG_PIN5_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN6 (ADC_INPUTCTRL_MUXNEG_PIN6_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_PIN7 (ADC_INPUTCTRL_MUXNEG_PIN7_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_GND (ADC_INPUTCTRL_MUXNEG_GND_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_IOGND (ADC_INPUTCTRL_MUXNEG_IOGND_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_INPUTSCAN_Pos 16 /**< \brief (ADC_INPUTCTRL) Number of Input Channels Included in Scan */ -#define ADC_INPUTCTRL_INPUTSCAN_Msk (_U_(0xF) << ADC_INPUTCTRL_INPUTSCAN_Pos) -#define ADC_INPUTCTRL_INPUTSCAN(value) (ADC_INPUTCTRL_INPUTSCAN_Msk & ((value) << ADC_INPUTCTRL_INPUTSCAN_Pos)) -#define ADC_INPUTCTRL_INPUTOFFSET_Pos 20 /**< \brief (ADC_INPUTCTRL) Positive Mux Setting Offset */ -#define ADC_INPUTCTRL_INPUTOFFSET_Msk (_U_(0xF) << ADC_INPUTCTRL_INPUTOFFSET_Pos) -#define ADC_INPUTCTRL_INPUTOFFSET(value) (ADC_INPUTCTRL_INPUTOFFSET_Msk & ((value) << ADC_INPUTCTRL_INPUTOFFSET_Pos)) -#define ADC_INPUTCTRL_GAIN_Pos 24 /**< \brief (ADC_INPUTCTRL) Gain Factor Selection */ -#define ADC_INPUTCTRL_GAIN_Msk (_U_(0xF) << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_GAIN(value) (ADC_INPUTCTRL_GAIN_Msk & ((value) << ADC_INPUTCTRL_GAIN_Pos)) -#define ADC_INPUTCTRL_GAIN_1X_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) 1x */ -#define ADC_INPUTCTRL_GAIN_2X_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) 2x */ -#define ADC_INPUTCTRL_GAIN_4X_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) 4x */ -#define ADC_INPUTCTRL_GAIN_8X_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) 8x */ -#define ADC_INPUTCTRL_GAIN_16X_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) 16x */ -#define ADC_INPUTCTRL_GAIN_DIV2_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) 1/2x */ -#define ADC_INPUTCTRL_GAIN_1X (ADC_INPUTCTRL_GAIN_1X_Val << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_GAIN_2X (ADC_INPUTCTRL_GAIN_2X_Val << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_GAIN_4X (ADC_INPUTCTRL_GAIN_4X_Val << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_GAIN_8X (ADC_INPUTCTRL_GAIN_8X_Val << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_GAIN_16X (ADC_INPUTCTRL_GAIN_16X_Val << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_GAIN_DIV2 (ADC_INPUTCTRL_GAIN_DIV2_Val << ADC_INPUTCTRL_GAIN_Pos) -#define ADC_INPUTCTRL_MASK _U_(0x0FFF1F1F) /**< \brief (ADC_INPUTCTRL) MASK Register */ - -/* -------- ADC_EVCTRL : (ADC Offset: 0x14) (R/W 8) Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t STARTEI:1; /*!< bit: 0 Start Conversion Event In */ - uint8_t SYNCEI:1; /*!< bit: 1 Synchronization Event In */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t RESRDYEO:1; /*!< bit: 4 Result Ready Event Out */ - uint8_t WINMONEO:1; /*!< bit: 5 Window Monitor Event Out */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_EVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_EVCTRL_OFFSET 0x14 /**< \brief (ADC_EVCTRL offset) Event Control */ -#define ADC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_EVCTRL reset_value) Event Control */ - -#define ADC_EVCTRL_STARTEI_Pos 0 /**< \brief (ADC_EVCTRL) Start Conversion Event In */ -#define ADC_EVCTRL_STARTEI (_U_(0x1) << ADC_EVCTRL_STARTEI_Pos) -#define ADC_EVCTRL_SYNCEI_Pos 1 /**< \brief (ADC_EVCTRL) Synchronization Event In */ -#define ADC_EVCTRL_SYNCEI (_U_(0x1) << ADC_EVCTRL_SYNCEI_Pos) -#define ADC_EVCTRL_RESRDYEO_Pos 4 /**< \brief (ADC_EVCTRL) Result Ready Event Out */ -#define ADC_EVCTRL_RESRDYEO (_U_(0x1) << ADC_EVCTRL_RESRDYEO_Pos) -#define ADC_EVCTRL_WINMONEO_Pos 5 /**< \brief (ADC_EVCTRL) Window Monitor Event Out */ -#define ADC_EVCTRL_WINMONEO (_U_(0x1) << ADC_EVCTRL_WINMONEO_Pos) -#define ADC_EVCTRL_MASK _U_(0x33) /**< \brief (ADC_EVCTRL) MASK Register */ - -/* -------- ADC_INTENCLR : (ADC Offset: 0x16) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ - uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ - uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ - uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready Interrupt Enable */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INTENCLR_OFFSET 0x16 /**< \brief (ADC_INTENCLR offset) Interrupt Enable Clear */ -#define ADC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENCLR reset_value) Interrupt Enable Clear */ - -#define ADC_INTENCLR_RESRDY_Pos 0 /**< \brief (ADC_INTENCLR) Result Ready Interrupt Enable */ -#define ADC_INTENCLR_RESRDY (_U_(0x1) << ADC_INTENCLR_RESRDY_Pos) -#define ADC_INTENCLR_OVERRUN_Pos 1 /**< \brief (ADC_INTENCLR) Overrun Interrupt Enable */ -#define ADC_INTENCLR_OVERRUN (_U_(0x1) << ADC_INTENCLR_OVERRUN_Pos) -#define ADC_INTENCLR_WINMON_Pos 2 /**< \brief (ADC_INTENCLR) Window Monitor Interrupt Enable */ -#define ADC_INTENCLR_WINMON (_U_(0x1) << ADC_INTENCLR_WINMON_Pos) -#define ADC_INTENCLR_SYNCRDY_Pos 3 /**< \brief (ADC_INTENCLR) Synchronization Ready Interrupt Enable */ -#define ADC_INTENCLR_SYNCRDY (_U_(0x1) << ADC_INTENCLR_SYNCRDY_Pos) -#define ADC_INTENCLR_MASK _U_(0x0F) /**< \brief (ADC_INTENCLR) MASK Register */ - -/* -------- ADC_INTENSET : (ADC Offset: 0x17) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ - uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ - uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ - uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready Interrupt Enable */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INTENSET_OFFSET 0x17 /**< \brief (ADC_INTENSET offset) Interrupt Enable Set */ -#define ADC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENSET reset_value) Interrupt Enable Set */ - -#define ADC_INTENSET_RESRDY_Pos 0 /**< \brief (ADC_INTENSET) Result Ready Interrupt Enable */ -#define ADC_INTENSET_RESRDY (_U_(0x1) << ADC_INTENSET_RESRDY_Pos) -#define ADC_INTENSET_OVERRUN_Pos 1 /**< \brief (ADC_INTENSET) Overrun Interrupt Enable */ -#define ADC_INTENSET_OVERRUN (_U_(0x1) << ADC_INTENSET_OVERRUN_Pos) -#define ADC_INTENSET_WINMON_Pos 2 /**< \brief (ADC_INTENSET) Window Monitor Interrupt Enable */ -#define ADC_INTENSET_WINMON (_U_(0x1) << ADC_INTENSET_WINMON_Pos) -#define ADC_INTENSET_SYNCRDY_Pos 3 /**< \brief (ADC_INTENSET) Synchronization Ready Interrupt Enable */ -#define ADC_INTENSET_SYNCRDY (_U_(0x1) << ADC_INTENSET_SYNCRDY_Pos) -#define ADC_INTENSET_MASK _U_(0x0F) /**< \brief (ADC_INTENSET) MASK Register */ - -/* -------- ADC_INTFLAG : (ADC Offset: 0x18) (R/W 8) Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t RESRDY:1; /*!< bit: 0 Result Ready */ - __I uint8_t OVERRUN:1; /*!< bit: 1 Overrun */ - __I uint8_t WINMON:1; /*!< bit: 2 Window Monitor */ - __I uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready */ - __I uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INTFLAG_OFFSET 0x18 /**< \brief (ADC_INTFLAG offset) Interrupt Flag Status and Clear */ -#define ADC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (ADC_INTFLAG reset_value) Interrupt Flag Status and Clear */ - -#define ADC_INTFLAG_RESRDY_Pos 0 /**< \brief (ADC_INTFLAG) Result Ready */ -#define ADC_INTFLAG_RESRDY (_U_(0x1) << ADC_INTFLAG_RESRDY_Pos) -#define ADC_INTFLAG_OVERRUN_Pos 1 /**< \brief (ADC_INTFLAG) Overrun */ -#define ADC_INTFLAG_OVERRUN (_U_(0x1) << ADC_INTFLAG_OVERRUN_Pos) -#define ADC_INTFLAG_WINMON_Pos 2 /**< \brief (ADC_INTFLAG) Window Monitor */ -#define ADC_INTFLAG_WINMON (_U_(0x1) << ADC_INTFLAG_WINMON_Pos) -#define ADC_INTFLAG_SYNCRDY_Pos 3 /**< \brief (ADC_INTFLAG) Synchronization Ready */ -#define ADC_INTFLAG_SYNCRDY (_U_(0x1) << ADC_INTFLAG_SYNCRDY_Pos) -#define ADC_INTFLAG_MASK _U_(0x0F) /**< \brief (ADC_INTFLAG) MASK Register */ - -/* -------- ADC_STATUS : (ADC Offset: 0x19) (R/ 8) Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t :7; /*!< bit: 0.. 6 Reserved */ - uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_STATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_STATUS_OFFSET 0x19 /**< \brief (ADC_STATUS offset) Status */ -#define ADC_STATUS_RESETVALUE _U_(0x00) /**< \brief (ADC_STATUS reset_value) Status */ - -#define ADC_STATUS_SYNCBUSY_Pos 7 /**< \brief (ADC_STATUS) Synchronization Busy */ -#define ADC_STATUS_SYNCBUSY (_U_(0x1) << ADC_STATUS_SYNCBUSY_Pos) -#define ADC_STATUS_MASK _U_(0x80) /**< \brief (ADC_STATUS) MASK Register */ - -/* -------- ADC_RESULT : (ADC Offset: 0x1A) (R/ 16) Result -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t RESULT:16; /*!< bit: 0..15 Result Conversion Value */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_RESULT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_RESULT_OFFSET 0x1A /**< \brief (ADC_RESULT offset) Result */ -#define ADC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESULT reset_value) Result */ - -#define ADC_RESULT_RESULT_Pos 0 /**< \brief (ADC_RESULT) Result Conversion Value */ -#define ADC_RESULT_RESULT_Msk (_U_(0xFFFF) << ADC_RESULT_RESULT_Pos) -#define ADC_RESULT_RESULT(value) (ADC_RESULT_RESULT_Msk & ((value) << ADC_RESULT_RESULT_Pos)) -#define ADC_RESULT_MASK _U_(0xFFFF) /**< \brief (ADC_RESULT) MASK Register */ - -/* -------- ADC_WINLT : (ADC Offset: 0x1C) (R/W 16) Window Monitor Lower Threshold -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t WINLT:16; /*!< bit: 0..15 Window Lower Threshold */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_WINLT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_WINLT_OFFSET 0x1C /**< \brief (ADC_WINLT offset) Window Monitor Lower Threshold */ -#define ADC_WINLT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINLT reset_value) Window Monitor Lower Threshold */ - -#define ADC_WINLT_WINLT_Pos 0 /**< \brief (ADC_WINLT) Window Lower Threshold */ -#define ADC_WINLT_WINLT_Msk (_U_(0xFFFF) << ADC_WINLT_WINLT_Pos) -#define ADC_WINLT_WINLT(value) (ADC_WINLT_WINLT_Msk & ((value) << ADC_WINLT_WINLT_Pos)) -#define ADC_WINLT_MASK _U_(0xFFFF) /**< \brief (ADC_WINLT) MASK Register */ - -/* -------- ADC_WINUT : (ADC Offset: 0x20) (R/W 16) Window Monitor Upper Threshold -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t WINUT:16; /*!< bit: 0..15 Window Upper Threshold */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_WINUT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_WINUT_OFFSET 0x20 /**< \brief (ADC_WINUT offset) Window Monitor Upper Threshold */ -#define ADC_WINUT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINUT reset_value) Window Monitor Upper Threshold */ - -#define ADC_WINUT_WINUT_Pos 0 /**< \brief (ADC_WINUT) Window Upper Threshold */ -#define ADC_WINUT_WINUT_Msk (_U_(0xFFFF) << ADC_WINUT_WINUT_Pos) -#define ADC_WINUT_WINUT(value) (ADC_WINUT_WINUT_Msk & ((value) << ADC_WINUT_WINUT_Pos)) -#define ADC_WINUT_MASK _U_(0xFFFF) /**< \brief (ADC_WINUT) MASK Register */ - -/* -------- ADC_GAINCORR : (ADC Offset: 0x24) (R/W 16) Gain Correction -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t GAINCORR:12; /*!< bit: 0..11 Gain Correction Value */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_GAINCORR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_GAINCORR_OFFSET 0x24 /**< \brief (ADC_GAINCORR offset) Gain Correction */ -#define ADC_GAINCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_GAINCORR reset_value) Gain Correction */ - -#define ADC_GAINCORR_GAINCORR_Pos 0 /**< \brief (ADC_GAINCORR) Gain Correction Value */ -#define ADC_GAINCORR_GAINCORR_Msk (_U_(0xFFF) << ADC_GAINCORR_GAINCORR_Pos) -#define ADC_GAINCORR_GAINCORR(value) (ADC_GAINCORR_GAINCORR_Msk & ((value) << ADC_GAINCORR_GAINCORR_Pos)) -#define ADC_GAINCORR_MASK _U_(0x0FFF) /**< \brief (ADC_GAINCORR) MASK Register */ - -/* -------- ADC_OFFSETCORR : (ADC Offset: 0x26) (R/W 16) Offset Correction -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t OFFSETCORR:12; /*!< bit: 0..11 Offset Correction Value */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_OFFSETCORR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_OFFSETCORR_OFFSET 0x26 /**< \brief (ADC_OFFSETCORR offset) Offset Correction */ -#define ADC_OFFSETCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_OFFSETCORR reset_value) Offset Correction */ - -#define ADC_OFFSETCORR_OFFSETCORR_Pos 0 /**< \brief (ADC_OFFSETCORR) Offset Correction Value */ -#define ADC_OFFSETCORR_OFFSETCORR_Msk (_U_(0xFFF) << ADC_OFFSETCORR_OFFSETCORR_Pos) -#define ADC_OFFSETCORR_OFFSETCORR(value) (ADC_OFFSETCORR_OFFSETCORR_Msk & ((value) << ADC_OFFSETCORR_OFFSETCORR_Pos)) -#define ADC_OFFSETCORR_MASK _U_(0x0FFF) /**< \brief (ADC_OFFSETCORR) MASK Register */ - -/* -------- ADC_CALIB : (ADC Offset: 0x28) (R/W 16) Calibration -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t LINEARITY_CAL:8; /*!< bit: 0.. 7 Linearity Calibration Value */ - uint16_t BIAS_CAL:3; /*!< bit: 8..10 Bias Calibration Value */ - uint16_t :5; /*!< bit: 11..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_CALIB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_CALIB_OFFSET 0x28 /**< \brief (ADC_CALIB offset) Calibration */ -#define ADC_CALIB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CALIB reset_value) Calibration */ - -#define ADC_CALIB_LINEARITY_CAL_Pos 0 /**< \brief (ADC_CALIB) Linearity Calibration Value */ -#define ADC_CALIB_LINEARITY_CAL_Msk (_U_(0xFF) << ADC_CALIB_LINEARITY_CAL_Pos) -#define ADC_CALIB_LINEARITY_CAL(value) (ADC_CALIB_LINEARITY_CAL_Msk & ((value) << ADC_CALIB_LINEARITY_CAL_Pos)) -#define ADC_CALIB_BIAS_CAL_Pos 8 /**< \brief (ADC_CALIB) Bias Calibration Value */ -#define ADC_CALIB_BIAS_CAL_Msk (_U_(0x7) << ADC_CALIB_BIAS_CAL_Pos) -#define ADC_CALIB_BIAS_CAL(value) (ADC_CALIB_BIAS_CAL_Msk & ((value) << ADC_CALIB_BIAS_CAL_Pos)) -#define ADC_CALIB_MASK _U_(0x07FF) /**< \brief (ADC_CALIB) MASK Register */ - -/* -------- ADC_DBGCTRL : (ADC Offset: 0x2A) (R/W 8) Debug Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_DBGCTRL_OFFSET 0x2A /**< \brief (ADC_DBGCTRL offset) Debug Control */ -#define ADC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_DBGCTRL reset_value) Debug Control */ - -#define ADC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (ADC_DBGCTRL) Debug Run */ -#define ADC_DBGCTRL_DBGRUN (_U_(0x1) << ADC_DBGCTRL_DBGRUN_Pos) -#define ADC_DBGCTRL_MASK _U_(0x01) /**< \brief (ADC_DBGCTRL) MASK Register */ - -/** \brief ADC hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO ADC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ - __IO ADC_REFCTRL_Type REFCTRL; /**< \brief Offset: 0x01 (R/W 8) Reference Control */ - __IO ADC_AVGCTRL_Type AVGCTRL; /**< \brief Offset: 0x02 (R/W 8) Average Control */ - __IO ADC_SAMPCTRL_Type SAMPCTRL; /**< \brief Offset: 0x03 (R/W 8) Sampling Time Control */ - __IO ADC_CTRLB_Type CTRLB; /**< \brief Offset: 0x04 (R/W 16) Control B */ - RoReg8 Reserved1[0x2]; - __IO ADC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x08 (R/W 8) Window Monitor Control */ - RoReg8 Reserved2[0x3]; - __IO ADC_SWTRIG_Type SWTRIG; /**< \brief Offset: 0x0C (R/W 8) Software Trigger */ - RoReg8 Reserved3[0x3]; - __IO ADC_INPUTCTRL_Type INPUTCTRL; /**< \brief Offset: 0x10 (R/W 32) Input Control */ - __IO ADC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x14 (R/W 8) Event Control */ - RoReg8 Reserved4[0x1]; - __IO ADC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x16 (R/W 8) Interrupt Enable Clear */ - __IO ADC_INTENSET_Type INTENSET; /**< \brief Offset: 0x17 (R/W 8) Interrupt Enable Set */ - __IO ADC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x18 (R/W 8) Interrupt Flag Status and Clear */ - __I ADC_STATUS_Type STATUS; /**< \brief Offset: 0x19 (R/ 8) Status */ - __I ADC_RESULT_Type RESULT; /**< \brief Offset: 0x1A (R/ 16) Result */ - __IO ADC_WINLT_Type WINLT; /**< \brief Offset: 0x1C (R/W 16) Window Monitor Lower Threshold */ - RoReg8 Reserved5[0x2]; - __IO ADC_WINUT_Type WINUT; /**< \brief Offset: 0x20 (R/W 16) Window Monitor Upper Threshold */ - RoReg8 Reserved6[0x2]; - __IO ADC_GAINCORR_Type GAINCORR; /**< \brief Offset: 0x24 (R/W 16) Gain Correction */ - __IO ADC_OFFSETCORR_Type OFFSETCORR; /**< \brief Offset: 0x26 (R/W 16) Offset Correction */ - __IO ADC_CALIB_Type CALIB; /**< \brief Offset: 0x28 (R/W 16) Calibration */ - __IO ADC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x2A (R/W 8) Debug Control */ -} Adc; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD21_ADC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for ADC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21_ADC_COMPONENT_ +#define _SAMD21_ADC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR ADC */ +/* ========================================================================== */ +/** \addtogroup SAMD21_ADC Analog Digital Converter */ +/*@{*/ + +#define ADC_U2204 +#define REV_ADC 0x120 + +/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CTRLA_OFFSET 0x00 /**< \brief (ADC_CTRLA offset) Control A */ +#define ADC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (ADC_CTRLA reset_value) Control A */ + +#define ADC_CTRLA_SWRST_Pos 0 /**< \brief (ADC_CTRLA) Software Reset */ +#define ADC_CTRLA_SWRST (_U_(0x1) << ADC_CTRLA_SWRST_Pos) +#define ADC_CTRLA_ENABLE_Pos 1 /**< \brief (ADC_CTRLA) Enable */ +#define ADC_CTRLA_ENABLE (_U_(0x1) << ADC_CTRLA_ENABLE_Pos) +#define ADC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (ADC_CTRLA) Run in Standby */ +#define ADC_CTRLA_RUNSTDBY (_U_(0x1) << ADC_CTRLA_RUNSTDBY_Pos) +#define ADC_CTRLA_MASK _U_(0x07) /**< \brief (ADC_CTRLA) MASK Register */ + +/* -------- ADC_REFCTRL : (ADC Offset: 0x01) (R/W 8) Reference Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t REFSEL:4; /*!< bit: 0.. 3 Reference Selection */ + uint8_t :3; /*!< bit: 4.. 6 Reserved */ + uint8_t REFCOMP:1; /*!< bit: 7 Reference Buffer Offset Compensation Enable */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_REFCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_REFCTRL_OFFSET 0x01 /**< \brief (ADC_REFCTRL offset) Reference Control */ +#define ADC_REFCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_REFCTRL reset_value) Reference Control */ + +#define ADC_REFCTRL_REFSEL_Pos 0 /**< \brief (ADC_REFCTRL) Reference Selection */ +#define ADC_REFCTRL_REFSEL_Msk (_U_(0xF) << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL(value) (ADC_REFCTRL_REFSEL_Msk & ((value) << ADC_REFCTRL_REFSEL_Pos)) +#define ADC_REFCTRL_REFSEL_INT1V_Val _U_(0x0) /**< \brief (ADC_REFCTRL) 1.0V voltage reference */ +#define ADC_REFCTRL_REFSEL_INTVCC0_Val _U_(0x1) /**< \brief (ADC_REFCTRL) 1/1.48 VDDANA */ +#define ADC_REFCTRL_REFSEL_INTVCC1_Val _U_(0x2) /**< \brief (ADC_REFCTRL) 1/2 VDDANA (only for VDDANA > 2.0V) */ +#define ADC_REFCTRL_REFSEL_AREFA_Val _U_(0x3) /**< \brief (ADC_REFCTRL) External reference */ +#define ADC_REFCTRL_REFSEL_AREFB_Val _U_(0x4) /**< \brief (ADC_REFCTRL) External reference */ +#define ADC_REFCTRL_REFSEL_INT1V (ADC_REFCTRL_REFSEL_INT1V_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_INTVCC0 (ADC_REFCTRL_REFSEL_INTVCC0_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_INTVCC1 (ADC_REFCTRL_REFSEL_INTVCC1_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFA (ADC_REFCTRL_REFSEL_AREFA_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFB (ADC_REFCTRL_REFSEL_AREFB_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFCOMP_Pos 7 /**< \brief (ADC_REFCTRL) Reference Buffer Offset Compensation Enable */ +#define ADC_REFCTRL_REFCOMP (_U_(0x1) << ADC_REFCTRL_REFCOMP_Pos) +#define ADC_REFCTRL_MASK _U_(0x8F) /**< \brief (ADC_REFCTRL) MASK Register */ + +/* -------- ADC_AVGCTRL : (ADC Offset: 0x02) (R/W 8) Average Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SAMPLENUM:4; /*!< bit: 0.. 3 Number of Samples to be Collected */ + uint8_t ADJRES:3; /*!< bit: 4.. 6 Adjusting Result / Division Coefficient */ + uint8_t :1; /*!< bit: 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_AVGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_AVGCTRL_OFFSET 0x02 /**< \brief (ADC_AVGCTRL offset) Average Control */ +#define ADC_AVGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_AVGCTRL reset_value) Average Control */ + +#define ADC_AVGCTRL_SAMPLENUM_Pos 0 /**< \brief (ADC_AVGCTRL) Number of Samples to be Collected */ +#define ADC_AVGCTRL_SAMPLENUM_Msk (_U_(0xF) << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM(value) (ADC_AVGCTRL_SAMPLENUM_Msk & ((value) << ADC_AVGCTRL_SAMPLENUM_Pos)) +#define ADC_AVGCTRL_SAMPLENUM_1_Val _U_(0x0) /**< \brief (ADC_AVGCTRL) 1 sample */ +#define ADC_AVGCTRL_SAMPLENUM_2_Val _U_(0x1) /**< \brief (ADC_AVGCTRL) 2 samples */ +#define ADC_AVGCTRL_SAMPLENUM_4_Val _U_(0x2) /**< \brief (ADC_AVGCTRL) 4 samples */ +#define ADC_AVGCTRL_SAMPLENUM_8_Val _U_(0x3) /**< \brief (ADC_AVGCTRL) 8 samples */ +#define ADC_AVGCTRL_SAMPLENUM_16_Val _U_(0x4) /**< \brief (ADC_AVGCTRL) 16 samples */ +#define ADC_AVGCTRL_SAMPLENUM_32_Val _U_(0x5) /**< \brief (ADC_AVGCTRL) 32 samples */ +#define ADC_AVGCTRL_SAMPLENUM_64_Val _U_(0x6) /**< \brief (ADC_AVGCTRL) 64 samples */ +#define ADC_AVGCTRL_SAMPLENUM_128_Val _U_(0x7) /**< \brief (ADC_AVGCTRL) 128 samples */ +#define ADC_AVGCTRL_SAMPLENUM_256_Val _U_(0x8) /**< \brief (ADC_AVGCTRL) 256 samples */ +#define ADC_AVGCTRL_SAMPLENUM_512_Val _U_(0x9) /**< \brief (ADC_AVGCTRL) 512 samples */ +#define ADC_AVGCTRL_SAMPLENUM_1024_Val _U_(0xA) /**< \brief (ADC_AVGCTRL) 1024 samples */ +#define ADC_AVGCTRL_SAMPLENUM_1 (ADC_AVGCTRL_SAMPLENUM_1_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_2 (ADC_AVGCTRL_SAMPLENUM_2_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_4 (ADC_AVGCTRL_SAMPLENUM_4_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_8 (ADC_AVGCTRL_SAMPLENUM_8_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_16 (ADC_AVGCTRL_SAMPLENUM_16_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_32 (ADC_AVGCTRL_SAMPLENUM_32_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_64 (ADC_AVGCTRL_SAMPLENUM_64_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_128 (ADC_AVGCTRL_SAMPLENUM_128_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_256 (ADC_AVGCTRL_SAMPLENUM_256_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_512 (ADC_AVGCTRL_SAMPLENUM_512_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_1024 (ADC_AVGCTRL_SAMPLENUM_1024_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_ADJRES_Pos 4 /**< \brief (ADC_AVGCTRL) Adjusting Result / Division Coefficient */ +#define ADC_AVGCTRL_ADJRES_Msk (_U_(0x7) << ADC_AVGCTRL_ADJRES_Pos) +#define ADC_AVGCTRL_ADJRES(value) (ADC_AVGCTRL_ADJRES_Msk & ((value) << ADC_AVGCTRL_ADJRES_Pos)) +#define ADC_AVGCTRL_MASK _U_(0x7F) /**< \brief (ADC_AVGCTRL) MASK Register */ + +/* -------- ADC_SAMPCTRL : (ADC Offset: 0x03) (R/W 8) Sampling Time Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SAMPLEN:6; /*!< bit: 0.. 5 Sampling Time Length */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_SAMPCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SAMPCTRL_OFFSET 0x03 /**< \brief (ADC_SAMPCTRL offset) Sampling Time Control */ +#define ADC_SAMPCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_SAMPCTRL reset_value) Sampling Time Control */ + +#define ADC_SAMPCTRL_SAMPLEN_Pos 0 /**< \brief (ADC_SAMPCTRL) Sampling Time Length */ +#define ADC_SAMPCTRL_SAMPLEN_Msk (_U_(0x3F) << ADC_SAMPCTRL_SAMPLEN_Pos) +#define ADC_SAMPCTRL_SAMPLEN(value) (ADC_SAMPCTRL_SAMPLEN_Msk & ((value) << ADC_SAMPCTRL_SAMPLEN_Pos)) +#define ADC_SAMPCTRL_MASK _U_(0x3F) /**< \brief (ADC_SAMPCTRL) MASK Register */ + +/* -------- ADC_CTRLB : (ADC Offset: 0x04) (R/W 16) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DIFFMODE:1; /*!< bit: 0 Differential Mode */ + uint16_t LEFTADJ:1; /*!< bit: 1 Left-Adjusted Result */ + uint16_t FREERUN:1; /*!< bit: 2 Free Running Mode */ + uint16_t CORREN:1; /*!< bit: 3 Digital Correction Logic Enabled */ + uint16_t RESSEL:2; /*!< bit: 4.. 5 Conversion Result Resolution */ + uint16_t :2; /*!< bit: 6.. 7 Reserved */ + uint16_t PRESCALER:3; /*!< bit: 8..10 Prescaler Configuration */ + uint16_t :5; /*!< bit: 11..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CTRLB_OFFSET 0x04 /**< \brief (ADC_CTRLB offset) Control B */ +#define ADC_CTRLB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLB reset_value) Control B */ + +#define ADC_CTRLB_DIFFMODE_Pos 0 /**< \brief (ADC_CTRLB) Differential Mode */ +#define ADC_CTRLB_DIFFMODE (_U_(0x1) << ADC_CTRLB_DIFFMODE_Pos) +#define ADC_CTRLB_LEFTADJ_Pos 1 /**< \brief (ADC_CTRLB) Left-Adjusted Result */ +#define ADC_CTRLB_LEFTADJ (_U_(0x1) << ADC_CTRLB_LEFTADJ_Pos) +#define ADC_CTRLB_FREERUN_Pos 2 /**< \brief (ADC_CTRLB) Free Running Mode */ +#define ADC_CTRLB_FREERUN (_U_(0x1) << ADC_CTRLB_FREERUN_Pos) +#define ADC_CTRLB_CORREN_Pos 3 /**< \brief (ADC_CTRLB) Digital Correction Logic Enabled */ +#define ADC_CTRLB_CORREN (_U_(0x1) << ADC_CTRLB_CORREN_Pos) +#define ADC_CTRLB_RESSEL_Pos 4 /**< \brief (ADC_CTRLB) Conversion Result Resolution */ +#define ADC_CTRLB_RESSEL_Msk (_U_(0x3) << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL(value) (ADC_CTRLB_RESSEL_Msk & ((value) << ADC_CTRLB_RESSEL_Pos)) +#define ADC_CTRLB_RESSEL_12BIT_Val _U_(0x0) /**< \brief (ADC_CTRLB) 12-bit result */ +#define ADC_CTRLB_RESSEL_16BIT_Val _U_(0x1) /**< \brief (ADC_CTRLB) For averaging mode output */ +#define ADC_CTRLB_RESSEL_10BIT_Val _U_(0x2) /**< \brief (ADC_CTRLB) 10-bit result */ +#define ADC_CTRLB_RESSEL_8BIT_Val _U_(0x3) /**< \brief (ADC_CTRLB) 8-bit result */ +#define ADC_CTRLB_RESSEL_12BIT (ADC_CTRLB_RESSEL_12BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_16BIT (ADC_CTRLB_RESSEL_16BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_10BIT (ADC_CTRLB_RESSEL_10BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_8BIT (ADC_CTRLB_RESSEL_8BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_PRESCALER_Pos 8 /**< \brief (ADC_CTRLB) Prescaler Configuration */ +#define ADC_CTRLB_PRESCALER_Msk (_U_(0x7) << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER(value) (ADC_CTRLB_PRESCALER_Msk & ((value) << ADC_CTRLB_PRESCALER_Pos)) +#define ADC_CTRLB_PRESCALER_DIV4_Val _U_(0x0) /**< \brief (ADC_CTRLB) Peripheral clock divided by 4 */ +#define ADC_CTRLB_PRESCALER_DIV8_Val _U_(0x1) /**< \brief (ADC_CTRLB) Peripheral clock divided by 8 */ +#define ADC_CTRLB_PRESCALER_DIV16_Val _U_(0x2) /**< \brief (ADC_CTRLB) Peripheral clock divided by 16 */ +#define ADC_CTRLB_PRESCALER_DIV32_Val _U_(0x3) /**< \brief (ADC_CTRLB) Peripheral clock divided by 32 */ +#define ADC_CTRLB_PRESCALER_DIV64_Val _U_(0x4) /**< \brief (ADC_CTRLB) Peripheral clock divided by 64 */ +#define ADC_CTRLB_PRESCALER_DIV128_Val _U_(0x5) /**< \brief (ADC_CTRLB) Peripheral clock divided by 128 */ +#define ADC_CTRLB_PRESCALER_DIV256_Val _U_(0x6) /**< \brief (ADC_CTRLB) Peripheral clock divided by 256 */ +#define ADC_CTRLB_PRESCALER_DIV512_Val _U_(0x7) /**< \brief (ADC_CTRLB) Peripheral clock divided by 512 */ +#define ADC_CTRLB_PRESCALER_DIV4 (ADC_CTRLB_PRESCALER_DIV4_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV8 (ADC_CTRLB_PRESCALER_DIV8_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV16 (ADC_CTRLB_PRESCALER_DIV16_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV32 (ADC_CTRLB_PRESCALER_DIV32_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV64 (ADC_CTRLB_PRESCALER_DIV64_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV128 (ADC_CTRLB_PRESCALER_DIV128_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV256 (ADC_CTRLB_PRESCALER_DIV256_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_PRESCALER_DIV512 (ADC_CTRLB_PRESCALER_DIV512_Val << ADC_CTRLB_PRESCALER_Pos) +#define ADC_CTRLB_MASK _U_(0x073F) /**< \brief (ADC_CTRLB) MASK Register */ + +/* -------- ADC_WINCTRL : (ADC Offset: 0x08) (R/W 8) Window Monitor Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t WINMODE:3; /*!< bit: 0.. 2 Window Monitor Mode */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_WINCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINCTRL_OFFSET 0x08 /**< \brief (ADC_WINCTRL offset) Window Monitor Control */ +#define ADC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_WINCTRL reset_value) Window Monitor Control */ + +#define ADC_WINCTRL_WINMODE_Pos 0 /**< \brief (ADC_WINCTRL) Window Monitor Mode */ +#define ADC_WINCTRL_WINMODE_Msk (_U_(0x7) << ADC_WINCTRL_WINMODE_Pos) +#define ADC_WINCTRL_WINMODE(value) (ADC_WINCTRL_WINMODE_Msk & ((value) << ADC_WINCTRL_WINMODE_Pos)) +#define ADC_WINCTRL_WINMODE_DISABLE_Val _U_(0x0) /**< \brief (ADC_WINCTRL) No window mode (default) */ +#define ADC_WINCTRL_WINMODE_MODE1_Val _U_(0x1) /**< \brief (ADC_WINCTRL) Mode 1: RESULT > WINLT */ +#define ADC_WINCTRL_WINMODE_MODE2_Val _U_(0x2) /**< \brief (ADC_WINCTRL) Mode 2: RESULT < WINUT */ +#define ADC_WINCTRL_WINMODE_MODE3_Val _U_(0x3) /**< \brief (ADC_WINCTRL) Mode 3: WINLT < RESULT < WINUT */ +#define ADC_WINCTRL_WINMODE_MODE4_Val _U_(0x4) /**< \brief (ADC_WINCTRL) Mode 4: !(WINLT < RESULT < WINUT) */ +#define ADC_WINCTRL_WINMODE_DISABLE (ADC_WINCTRL_WINMODE_DISABLE_Val << ADC_WINCTRL_WINMODE_Pos) +#define ADC_WINCTRL_WINMODE_MODE1 (ADC_WINCTRL_WINMODE_MODE1_Val << ADC_WINCTRL_WINMODE_Pos) +#define ADC_WINCTRL_WINMODE_MODE2 (ADC_WINCTRL_WINMODE_MODE2_Val << ADC_WINCTRL_WINMODE_Pos) +#define ADC_WINCTRL_WINMODE_MODE3 (ADC_WINCTRL_WINMODE_MODE3_Val << ADC_WINCTRL_WINMODE_Pos) +#define ADC_WINCTRL_WINMODE_MODE4 (ADC_WINCTRL_WINMODE_MODE4_Val << ADC_WINCTRL_WINMODE_Pos) +#define ADC_WINCTRL_MASK _U_(0x07) /**< \brief (ADC_WINCTRL) MASK Register */ + +/* -------- ADC_SWTRIG : (ADC Offset: 0x0C) (R/W 8) Software Trigger -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t FLUSH:1; /*!< bit: 0 ADC Conversion Flush */ + uint8_t START:1; /*!< bit: 1 ADC Start Conversion */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_SWTRIG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SWTRIG_OFFSET 0x0C /**< \brief (ADC_SWTRIG offset) Software Trigger */ +#define ADC_SWTRIG_RESETVALUE _U_(0x00) /**< \brief (ADC_SWTRIG reset_value) Software Trigger */ + +#define ADC_SWTRIG_FLUSH_Pos 0 /**< \brief (ADC_SWTRIG) ADC Conversion Flush */ +#define ADC_SWTRIG_FLUSH (_U_(0x1) << ADC_SWTRIG_FLUSH_Pos) +#define ADC_SWTRIG_START_Pos 1 /**< \brief (ADC_SWTRIG) ADC Start Conversion */ +#define ADC_SWTRIG_START (_U_(0x1) << ADC_SWTRIG_START_Pos) +#define ADC_SWTRIG_MASK _U_(0x03) /**< \brief (ADC_SWTRIG) MASK Register */ + +/* -------- ADC_INPUTCTRL : (ADC Offset: 0x10) (R/W 32) Input Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t MUXPOS:5; /*!< bit: 0.. 4 Positive Mux Input Selection */ + uint32_t :3; /*!< bit: 5.. 7 Reserved */ + uint32_t MUXNEG:5; /*!< bit: 8..12 Negative Mux Input Selection */ + uint32_t :3; /*!< bit: 13..15 Reserved */ + uint32_t INPUTSCAN:4; /*!< bit: 16..19 Number of Input Channels Included in Scan */ + uint32_t INPUTOFFSET:4; /*!< bit: 20..23 Positive Mux Setting Offset */ + uint32_t GAIN:4; /*!< bit: 24..27 Gain Factor Selection */ + uint32_t :4; /*!< bit: 28..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_INPUTCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INPUTCTRL_OFFSET 0x10 /**< \brief (ADC_INPUTCTRL offset) Input Control */ +#define ADC_INPUTCTRL_RESETVALUE _U_(0x00000000) /**< \brief (ADC_INPUTCTRL reset_value) Input Control */ + +#define ADC_INPUTCTRL_MUXPOS_Pos 0 /**< \brief (ADC_INPUTCTRL) Positive Mux Input Selection */ +#define ADC_INPUTCTRL_MUXPOS_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS(value) (ADC_INPUTCTRL_MUXPOS_Msk & ((value) << ADC_INPUTCTRL_MUXPOS_Pos)) +#define ADC_INPUTCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN8_Val _U_(0x8) /**< \brief (ADC_INPUTCTRL) ADC AIN8 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN9_Val _U_(0x9) /**< \brief (ADC_INPUTCTRL) ADC AIN9 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN10_Val _U_(0xA) /**< \brief (ADC_INPUTCTRL) ADC AIN10 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN11_Val _U_(0xB) /**< \brief (ADC_INPUTCTRL) ADC AIN11 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN12_Val _U_(0xC) /**< \brief (ADC_INPUTCTRL) ADC AIN12 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN13_Val _U_(0xD) /**< \brief (ADC_INPUTCTRL) ADC AIN13 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN14_Val _U_(0xE) /**< \brief (ADC_INPUTCTRL) ADC AIN14 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN15_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) ADC AIN15 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN16_Val _U_(0x10) /**< \brief (ADC_INPUTCTRL) ADC AIN16 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN17_Val _U_(0x11) /**< \brief (ADC_INPUTCTRL) ADC AIN17 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN18_Val _U_(0x12) /**< \brief (ADC_INPUTCTRL) ADC AIN18 Pin */ +#define ADC_INPUTCTRL_MUXPOS_PIN19_Val _U_(0x13) /**< \brief (ADC_INPUTCTRL) ADC AIN19 Pin */ +#define ADC_INPUTCTRL_MUXPOS_TEMP_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Temperature Reference */ +#define ADC_INPUTCTRL_MUXPOS_BANDGAP_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) Bandgap Voltage */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val _U_(0x1A) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled Core Supply */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val _U_(0x1B) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled I/O Supply */ +#define ADC_INPUTCTRL_MUXPOS_DAC_Val _U_(0x1C) /**< \brief (ADC_INPUTCTRL) DAC Output */ +#define ADC_INPUTCTRL_MUXPOS_PIN0 (ADC_INPUTCTRL_MUXPOS_PIN0_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN1 (ADC_INPUTCTRL_MUXPOS_PIN1_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN2 (ADC_INPUTCTRL_MUXPOS_PIN2_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN3 (ADC_INPUTCTRL_MUXPOS_PIN3_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN4 (ADC_INPUTCTRL_MUXPOS_PIN4_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN5 (ADC_INPUTCTRL_MUXPOS_PIN5_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN6 (ADC_INPUTCTRL_MUXPOS_PIN6_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN7 (ADC_INPUTCTRL_MUXPOS_PIN7_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN8 (ADC_INPUTCTRL_MUXPOS_PIN8_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN9 (ADC_INPUTCTRL_MUXPOS_PIN9_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN10 (ADC_INPUTCTRL_MUXPOS_PIN10_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN11 (ADC_INPUTCTRL_MUXPOS_PIN11_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN12 (ADC_INPUTCTRL_MUXPOS_PIN12_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN13 (ADC_INPUTCTRL_MUXPOS_PIN13_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN14 (ADC_INPUTCTRL_MUXPOS_PIN14_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN15 (ADC_INPUTCTRL_MUXPOS_PIN15_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN16 (ADC_INPUTCTRL_MUXPOS_PIN16_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN17 (ADC_INPUTCTRL_MUXPOS_PIN17_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN18 (ADC_INPUTCTRL_MUXPOS_PIN18_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PIN19 (ADC_INPUTCTRL_MUXPOS_PIN19_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_TEMP (ADC_INPUTCTRL_MUXPOS_TEMP_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_BANDGAP (ADC_INPUTCTRL_MUXPOS_BANDGAP_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC (ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC (ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_DAC (ADC_INPUTCTRL_MUXPOS_DAC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXNEG_Pos 8 /**< \brief (ADC_INPUTCTRL) Negative Mux Input Selection */ +#define ADC_INPUTCTRL_MUXNEG_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG(value) (ADC_INPUTCTRL_MUXNEG_Msk & ((value) << ADC_INPUTCTRL_MUXNEG_Pos)) +#define ADC_INPUTCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ +#define ADC_INPUTCTRL_MUXNEG_PIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ +#define ADC_INPUTCTRL_MUXNEG_GND_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Internal Ground */ +#define ADC_INPUTCTRL_MUXNEG_IOGND_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) I/O Ground */ +#define ADC_INPUTCTRL_MUXNEG_PIN0 (ADC_INPUTCTRL_MUXNEG_PIN0_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN1 (ADC_INPUTCTRL_MUXNEG_PIN1_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN2 (ADC_INPUTCTRL_MUXNEG_PIN2_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN3 (ADC_INPUTCTRL_MUXNEG_PIN3_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN4 (ADC_INPUTCTRL_MUXNEG_PIN4_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN5 (ADC_INPUTCTRL_MUXNEG_PIN5_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN6 (ADC_INPUTCTRL_MUXNEG_PIN6_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_PIN7 (ADC_INPUTCTRL_MUXNEG_PIN7_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_GND (ADC_INPUTCTRL_MUXNEG_GND_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_IOGND (ADC_INPUTCTRL_MUXNEG_IOGND_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_INPUTSCAN_Pos 16 /**< \brief (ADC_INPUTCTRL) Number of Input Channels Included in Scan */ +#define ADC_INPUTCTRL_INPUTSCAN_Msk (_U_(0xF) << ADC_INPUTCTRL_INPUTSCAN_Pos) +#define ADC_INPUTCTRL_INPUTSCAN(value) (ADC_INPUTCTRL_INPUTSCAN_Msk & ((value) << ADC_INPUTCTRL_INPUTSCAN_Pos)) +#define ADC_INPUTCTRL_INPUTOFFSET_Pos 20 /**< \brief (ADC_INPUTCTRL) Positive Mux Setting Offset */ +#define ADC_INPUTCTRL_INPUTOFFSET_Msk (_U_(0xF) << ADC_INPUTCTRL_INPUTOFFSET_Pos) +#define ADC_INPUTCTRL_INPUTOFFSET(value) (ADC_INPUTCTRL_INPUTOFFSET_Msk & ((value) << ADC_INPUTCTRL_INPUTOFFSET_Pos)) +#define ADC_INPUTCTRL_GAIN_Pos 24 /**< \brief (ADC_INPUTCTRL) Gain Factor Selection */ +#define ADC_INPUTCTRL_GAIN_Msk (_U_(0xF) << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_GAIN(value) (ADC_INPUTCTRL_GAIN_Msk & ((value) << ADC_INPUTCTRL_GAIN_Pos)) +#define ADC_INPUTCTRL_GAIN_1X_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) 1x */ +#define ADC_INPUTCTRL_GAIN_2X_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) 2x */ +#define ADC_INPUTCTRL_GAIN_4X_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) 4x */ +#define ADC_INPUTCTRL_GAIN_8X_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) 8x */ +#define ADC_INPUTCTRL_GAIN_16X_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) 16x */ +#define ADC_INPUTCTRL_GAIN_DIV2_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) 1/2x */ +#define ADC_INPUTCTRL_GAIN_1X (ADC_INPUTCTRL_GAIN_1X_Val << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_GAIN_2X (ADC_INPUTCTRL_GAIN_2X_Val << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_GAIN_4X (ADC_INPUTCTRL_GAIN_4X_Val << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_GAIN_8X (ADC_INPUTCTRL_GAIN_8X_Val << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_GAIN_16X (ADC_INPUTCTRL_GAIN_16X_Val << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_GAIN_DIV2 (ADC_INPUTCTRL_GAIN_DIV2_Val << ADC_INPUTCTRL_GAIN_Pos) +#define ADC_INPUTCTRL_MASK _U_(0x0FFF1F1F) /**< \brief (ADC_INPUTCTRL) MASK Register */ + +/* -------- ADC_EVCTRL : (ADC Offset: 0x14) (R/W 8) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STARTEI:1; /*!< bit: 0 Start Conversion Event In */ + uint8_t SYNCEI:1; /*!< bit: 1 Synchronization Event In */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t RESRDYEO:1; /*!< bit: 4 Result Ready Event Out */ + uint8_t WINMONEO:1; /*!< bit: 5 Window Monitor Event Out */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_EVCTRL_OFFSET 0x14 /**< \brief (ADC_EVCTRL offset) Event Control */ +#define ADC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_EVCTRL reset_value) Event Control */ + +#define ADC_EVCTRL_STARTEI_Pos 0 /**< \brief (ADC_EVCTRL) Start Conversion Event In */ +#define ADC_EVCTRL_STARTEI (_U_(0x1) << ADC_EVCTRL_STARTEI_Pos) +#define ADC_EVCTRL_SYNCEI_Pos 1 /**< \brief (ADC_EVCTRL) Synchronization Event In */ +#define ADC_EVCTRL_SYNCEI (_U_(0x1) << ADC_EVCTRL_SYNCEI_Pos) +#define ADC_EVCTRL_RESRDYEO_Pos 4 /**< \brief (ADC_EVCTRL) Result Ready Event Out */ +#define ADC_EVCTRL_RESRDYEO (_U_(0x1) << ADC_EVCTRL_RESRDYEO_Pos) +#define ADC_EVCTRL_WINMONEO_Pos 5 /**< \brief (ADC_EVCTRL) Window Monitor Event Out */ +#define ADC_EVCTRL_WINMONEO (_U_(0x1) << ADC_EVCTRL_WINMONEO_Pos) +#define ADC_EVCTRL_MASK _U_(0x33) /**< \brief (ADC_EVCTRL) MASK Register */ + +/* -------- ADC_INTENCLR : (ADC Offset: 0x16) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ + uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ + uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ + uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready Interrupt Enable */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTENCLR_OFFSET 0x16 /**< \brief (ADC_INTENCLR offset) Interrupt Enable Clear */ +#define ADC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define ADC_INTENCLR_RESRDY_Pos 0 /**< \brief (ADC_INTENCLR) Result Ready Interrupt Enable */ +#define ADC_INTENCLR_RESRDY (_U_(0x1) << ADC_INTENCLR_RESRDY_Pos) +#define ADC_INTENCLR_OVERRUN_Pos 1 /**< \brief (ADC_INTENCLR) Overrun Interrupt Enable */ +#define ADC_INTENCLR_OVERRUN (_U_(0x1) << ADC_INTENCLR_OVERRUN_Pos) +#define ADC_INTENCLR_WINMON_Pos 2 /**< \brief (ADC_INTENCLR) Window Monitor Interrupt Enable */ +#define ADC_INTENCLR_WINMON (_U_(0x1) << ADC_INTENCLR_WINMON_Pos) +#define ADC_INTENCLR_SYNCRDY_Pos 3 /**< \brief (ADC_INTENCLR) Synchronization Ready Interrupt Enable */ +#define ADC_INTENCLR_SYNCRDY (_U_(0x1) << ADC_INTENCLR_SYNCRDY_Pos) +#define ADC_INTENCLR_MASK _U_(0x0F) /**< \brief (ADC_INTENCLR) MASK Register */ + +/* -------- ADC_INTENSET : (ADC Offset: 0x17) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ + uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ + uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ + uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready Interrupt Enable */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTENSET_OFFSET 0x17 /**< \brief (ADC_INTENSET offset) Interrupt Enable Set */ +#define ADC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENSET reset_value) Interrupt Enable Set */ + +#define ADC_INTENSET_RESRDY_Pos 0 /**< \brief (ADC_INTENSET) Result Ready Interrupt Enable */ +#define ADC_INTENSET_RESRDY (_U_(0x1) << ADC_INTENSET_RESRDY_Pos) +#define ADC_INTENSET_OVERRUN_Pos 1 /**< \brief (ADC_INTENSET) Overrun Interrupt Enable */ +#define ADC_INTENSET_OVERRUN (_U_(0x1) << ADC_INTENSET_OVERRUN_Pos) +#define ADC_INTENSET_WINMON_Pos 2 /**< \brief (ADC_INTENSET) Window Monitor Interrupt Enable */ +#define ADC_INTENSET_WINMON (_U_(0x1) << ADC_INTENSET_WINMON_Pos) +#define ADC_INTENSET_SYNCRDY_Pos 3 /**< \brief (ADC_INTENSET) Synchronization Ready Interrupt Enable */ +#define ADC_INTENSET_SYNCRDY (_U_(0x1) << ADC_INTENSET_SYNCRDY_Pos) +#define ADC_INTENSET_MASK _U_(0x0F) /**< \brief (ADC_INTENSET) MASK Register */ + +/* -------- ADC_INTFLAG : (ADC Offset: 0x18) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t RESRDY:1; /*!< bit: 0 Result Ready */ + __I uint8_t OVERRUN:1; /*!< bit: 1 Overrun */ + __I uint8_t WINMON:1; /*!< bit: 2 Window Monitor */ + __I uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready */ + __I uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTFLAG_OFFSET 0x18 /**< \brief (ADC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define ADC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (ADC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define ADC_INTFLAG_RESRDY_Pos 0 /**< \brief (ADC_INTFLAG) Result Ready */ +#define ADC_INTFLAG_RESRDY (_U_(0x1) << ADC_INTFLAG_RESRDY_Pos) +#define ADC_INTFLAG_OVERRUN_Pos 1 /**< \brief (ADC_INTFLAG) Overrun */ +#define ADC_INTFLAG_OVERRUN (_U_(0x1) << ADC_INTFLAG_OVERRUN_Pos) +#define ADC_INTFLAG_WINMON_Pos 2 /**< \brief (ADC_INTFLAG) Window Monitor */ +#define ADC_INTFLAG_WINMON (_U_(0x1) << ADC_INTFLAG_WINMON_Pos) +#define ADC_INTFLAG_SYNCRDY_Pos 3 /**< \brief (ADC_INTFLAG) Synchronization Ready */ +#define ADC_INTFLAG_SYNCRDY (_U_(0x1) << ADC_INTFLAG_SYNCRDY_Pos) +#define ADC_INTFLAG_MASK _U_(0x0F) /**< \brief (ADC_INTFLAG) MASK Register */ + +/* -------- ADC_STATUS : (ADC Offset: 0x19) (R/ 8) Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t :7; /*!< bit: 0.. 6 Reserved */ + uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_STATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_STATUS_OFFSET 0x19 /**< \brief (ADC_STATUS offset) Status */ +#define ADC_STATUS_RESETVALUE _U_(0x00) /**< \brief (ADC_STATUS reset_value) Status */ + +#define ADC_STATUS_SYNCBUSY_Pos 7 /**< \brief (ADC_STATUS) Synchronization Busy */ +#define ADC_STATUS_SYNCBUSY (_U_(0x1) << ADC_STATUS_SYNCBUSY_Pos) +#define ADC_STATUS_MASK _U_(0x80) /**< \brief (ADC_STATUS) MASK Register */ + +/* -------- ADC_RESULT : (ADC Offset: 0x1A) (R/ 16) Result -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESULT:16; /*!< bit: 0..15 Result Conversion Value */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_RESULT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_RESULT_OFFSET 0x1A /**< \brief (ADC_RESULT offset) Result */ +#define ADC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESULT reset_value) Result */ + +#define ADC_RESULT_RESULT_Pos 0 /**< \brief (ADC_RESULT) Result Conversion Value */ +#define ADC_RESULT_RESULT_Msk (_U_(0xFFFF) << ADC_RESULT_RESULT_Pos) +#define ADC_RESULT_RESULT(value) (ADC_RESULT_RESULT_Msk & ((value) << ADC_RESULT_RESULT_Pos)) +#define ADC_RESULT_MASK _U_(0xFFFF) /**< \brief (ADC_RESULT) MASK Register */ + +/* -------- ADC_WINLT : (ADC Offset: 0x1C) (R/W 16) Window Monitor Lower Threshold -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t WINLT:16; /*!< bit: 0..15 Window Lower Threshold */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_WINLT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINLT_OFFSET 0x1C /**< \brief (ADC_WINLT offset) Window Monitor Lower Threshold */ +#define ADC_WINLT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINLT reset_value) Window Monitor Lower Threshold */ + +#define ADC_WINLT_WINLT_Pos 0 /**< \brief (ADC_WINLT) Window Lower Threshold */ +#define ADC_WINLT_WINLT_Msk (_U_(0xFFFF) << ADC_WINLT_WINLT_Pos) +#define ADC_WINLT_WINLT(value) (ADC_WINLT_WINLT_Msk & ((value) << ADC_WINLT_WINLT_Pos)) +#define ADC_WINLT_MASK _U_(0xFFFF) /**< \brief (ADC_WINLT) MASK Register */ + +/* -------- ADC_WINUT : (ADC Offset: 0x20) (R/W 16) Window Monitor Upper Threshold -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t WINUT:16; /*!< bit: 0..15 Window Upper Threshold */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_WINUT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINUT_OFFSET 0x20 /**< \brief (ADC_WINUT offset) Window Monitor Upper Threshold */ +#define ADC_WINUT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINUT reset_value) Window Monitor Upper Threshold */ + +#define ADC_WINUT_WINUT_Pos 0 /**< \brief (ADC_WINUT) Window Upper Threshold */ +#define ADC_WINUT_WINUT_Msk (_U_(0xFFFF) << ADC_WINUT_WINUT_Pos) +#define ADC_WINUT_WINUT(value) (ADC_WINUT_WINUT_Msk & ((value) << ADC_WINUT_WINUT_Pos)) +#define ADC_WINUT_MASK _U_(0xFFFF) /**< \brief (ADC_WINUT) MASK Register */ + +/* -------- ADC_GAINCORR : (ADC Offset: 0x24) (R/W 16) Gain Correction -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t GAINCORR:12; /*!< bit: 0..11 Gain Correction Value */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_GAINCORR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_GAINCORR_OFFSET 0x24 /**< \brief (ADC_GAINCORR offset) Gain Correction */ +#define ADC_GAINCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_GAINCORR reset_value) Gain Correction */ + +#define ADC_GAINCORR_GAINCORR_Pos 0 /**< \brief (ADC_GAINCORR) Gain Correction Value */ +#define ADC_GAINCORR_GAINCORR_Msk (_U_(0xFFF) << ADC_GAINCORR_GAINCORR_Pos) +#define ADC_GAINCORR_GAINCORR(value) (ADC_GAINCORR_GAINCORR_Msk & ((value) << ADC_GAINCORR_GAINCORR_Pos)) +#define ADC_GAINCORR_MASK _U_(0x0FFF) /**< \brief (ADC_GAINCORR) MASK Register */ + +/* -------- ADC_OFFSETCORR : (ADC Offset: 0x26) (R/W 16) Offset Correction -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t OFFSETCORR:12; /*!< bit: 0..11 Offset Correction Value */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_OFFSETCORR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_OFFSETCORR_OFFSET 0x26 /**< \brief (ADC_OFFSETCORR offset) Offset Correction */ +#define ADC_OFFSETCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_OFFSETCORR reset_value) Offset Correction */ + +#define ADC_OFFSETCORR_OFFSETCORR_Pos 0 /**< \brief (ADC_OFFSETCORR) Offset Correction Value */ +#define ADC_OFFSETCORR_OFFSETCORR_Msk (_U_(0xFFF) << ADC_OFFSETCORR_OFFSETCORR_Pos) +#define ADC_OFFSETCORR_OFFSETCORR(value) (ADC_OFFSETCORR_OFFSETCORR_Msk & ((value) << ADC_OFFSETCORR_OFFSETCORR_Pos)) +#define ADC_OFFSETCORR_MASK _U_(0x0FFF) /**< \brief (ADC_OFFSETCORR) MASK Register */ + +/* -------- ADC_CALIB : (ADC Offset: 0x28) (R/W 16) Calibration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t LINEARITY_CAL:8; /*!< bit: 0.. 7 Linearity Calibration Value */ + uint16_t BIAS_CAL:3; /*!< bit: 8..10 Bias Calibration Value */ + uint16_t :5; /*!< bit: 11..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CALIB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CALIB_OFFSET 0x28 /**< \brief (ADC_CALIB offset) Calibration */ +#define ADC_CALIB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CALIB reset_value) Calibration */ + +#define ADC_CALIB_LINEARITY_CAL_Pos 0 /**< \brief (ADC_CALIB) Linearity Calibration Value */ +#define ADC_CALIB_LINEARITY_CAL_Msk (_U_(0xFF) << ADC_CALIB_LINEARITY_CAL_Pos) +#define ADC_CALIB_LINEARITY_CAL(value) (ADC_CALIB_LINEARITY_CAL_Msk & ((value) << ADC_CALIB_LINEARITY_CAL_Pos)) +#define ADC_CALIB_BIAS_CAL_Pos 8 /**< \brief (ADC_CALIB) Bias Calibration Value */ +#define ADC_CALIB_BIAS_CAL_Msk (_U_(0x7) << ADC_CALIB_BIAS_CAL_Pos) +#define ADC_CALIB_BIAS_CAL(value) (ADC_CALIB_BIAS_CAL_Msk & ((value) << ADC_CALIB_BIAS_CAL_Pos)) +#define ADC_CALIB_MASK _U_(0x07FF) /**< \brief (ADC_CALIB) MASK Register */ + +/* -------- ADC_DBGCTRL : (ADC Offset: 0x2A) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DBGCTRL_OFFSET 0x2A /**< \brief (ADC_DBGCTRL offset) Debug Control */ +#define ADC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_DBGCTRL reset_value) Debug Control */ + +#define ADC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (ADC_DBGCTRL) Debug Run */ +#define ADC_DBGCTRL_DBGRUN (_U_(0x1) << ADC_DBGCTRL_DBGRUN_Pos) +#define ADC_DBGCTRL_MASK _U_(0x01) /**< \brief (ADC_DBGCTRL) MASK Register */ + +/** \brief ADC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO ADC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ + __IO ADC_REFCTRL_Type REFCTRL; /**< \brief Offset: 0x01 (R/W 8) Reference Control */ + __IO ADC_AVGCTRL_Type AVGCTRL; /**< \brief Offset: 0x02 (R/W 8) Average Control */ + __IO ADC_SAMPCTRL_Type SAMPCTRL; /**< \brief Offset: 0x03 (R/W 8) Sampling Time Control */ + __IO ADC_CTRLB_Type CTRLB; /**< \brief Offset: 0x04 (R/W 16) Control B */ + RoReg8 Reserved1[0x2]; + __IO ADC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x08 (R/W 8) Window Monitor Control */ + RoReg8 Reserved2[0x3]; + __IO ADC_SWTRIG_Type SWTRIG; /**< \brief Offset: 0x0C (R/W 8) Software Trigger */ + RoReg8 Reserved3[0x3]; + __IO ADC_INPUTCTRL_Type INPUTCTRL; /**< \brief Offset: 0x10 (R/W 32) Input Control */ + __IO ADC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x14 (R/W 8) Event Control */ + RoReg8 Reserved4[0x1]; + __IO ADC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x16 (R/W 8) Interrupt Enable Clear */ + __IO ADC_INTENSET_Type INTENSET; /**< \brief Offset: 0x17 (R/W 8) Interrupt Enable Set */ + __IO ADC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x18 (R/W 8) Interrupt Flag Status and Clear */ + __I ADC_STATUS_Type STATUS; /**< \brief Offset: 0x19 (R/ 8) Status */ + __I ADC_RESULT_Type RESULT; /**< \brief Offset: 0x1A (R/ 16) Result */ + __IO ADC_WINLT_Type WINLT; /**< \brief Offset: 0x1C (R/W 16) Window Monitor Lower Threshold */ + RoReg8 Reserved5[0x2]; + __IO ADC_WINUT_Type WINUT; /**< \brief Offset: 0x20 (R/W 16) Window Monitor Upper Threshold */ + RoReg8 Reserved6[0x2]; + __IO ADC_GAINCORR_Type GAINCORR; /**< \brief Offset: 0x24 (R/W 16) Gain Correction */ + __IO ADC_OFFSETCORR_Type OFFSETCORR; /**< \brief Offset: 0x26 (R/W 16) Offset Correction */ + __IO ADC_CALIB_Type CALIB; /**< \brief Offset: 0x28 (R/W 16) Calibration */ + __IO ADC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x2A (R/W 8) Debug Control */ +} Adc; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD21_ADC_COMPONENT_ */ diff --git a/lib/samd21/samd21a/include/component/dac.h b/lib/samd21/samd21a/include/component/dac.h index 824dde6..45e10f0 100644 --- a/lib/samd21/samd21a/include/component/dac.h +++ b/lib/samd21/samd21a/include/component/dac.h @@ -1,272 +1,272 @@ -/** - * \file - * - * \brief Component description for DAC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21_DAC_COMPONENT_ -#define _SAMD21_DAC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR DAC */ -/* ========================================================================== */ -/** \addtogroup SAMD21_DAC Digital Analog Converter */ -/*@{*/ - -#define DAC_U2214 -#define REV_DAC 0x110 - -/* -------- DAC_CTRLA : (DAC Offset: 0x0) (R/W 8) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Enable */ - uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_CTRLA_OFFSET 0x0 /**< \brief (DAC_CTRLA offset) Control A */ -#define DAC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLA reset_value) Control A */ - -#define DAC_CTRLA_SWRST_Pos 0 /**< \brief (DAC_CTRLA) Software Reset */ -#define DAC_CTRLA_SWRST (_U_(0x1) << DAC_CTRLA_SWRST_Pos) -#define DAC_CTRLA_ENABLE_Pos 1 /**< \brief (DAC_CTRLA) Enable */ -#define DAC_CTRLA_ENABLE (_U_(0x1) << DAC_CTRLA_ENABLE_Pos) -#define DAC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (DAC_CTRLA) Run in Standby */ -#define DAC_CTRLA_RUNSTDBY (_U_(0x1) << DAC_CTRLA_RUNSTDBY_Pos) -#define DAC_CTRLA_MASK _U_(0x07) /**< \brief (DAC_CTRLA) MASK Register */ - -/* -------- DAC_CTRLB : (DAC Offset: 0x1) (R/W 8) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t EOEN:1; /*!< bit: 0 External Output Enable */ - uint8_t IOEN:1; /*!< bit: 1 Internal Output Enable */ - uint8_t LEFTADJ:1; /*!< bit: 2 Left Adjusted Data */ - uint8_t VPD:1; /*!< bit: 3 Voltage Pump Disable */ - uint8_t BDWP:1; /*!< bit: 4 Bypass DATABUF Write Protection */ - uint8_t :1; /*!< bit: 5 Reserved */ - uint8_t REFSEL:2; /*!< bit: 6.. 7 Reference Selection */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_CTRLB_OFFSET 0x1 /**< \brief (DAC_CTRLB offset) Control B */ -#define DAC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLB reset_value) Control B */ - -#define DAC_CTRLB_EOEN_Pos 0 /**< \brief (DAC_CTRLB) External Output Enable */ -#define DAC_CTRLB_EOEN (_U_(0x1) << DAC_CTRLB_EOEN_Pos) -#define DAC_CTRLB_IOEN_Pos 1 /**< \brief (DAC_CTRLB) Internal Output Enable */ -#define DAC_CTRLB_IOEN (_U_(0x1) << DAC_CTRLB_IOEN_Pos) -#define DAC_CTRLB_LEFTADJ_Pos 2 /**< \brief (DAC_CTRLB) Left Adjusted Data */ -#define DAC_CTRLB_LEFTADJ (_U_(0x1) << DAC_CTRLB_LEFTADJ_Pos) -#define DAC_CTRLB_VPD_Pos 3 /**< \brief (DAC_CTRLB) Voltage Pump Disable */ -#define DAC_CTRLB_VPD (_U_(0x1) << DAC_CTRLB_VPD_Pos) -#define DAC_CTRLB_BDWP_Pos 4 /**< \brief (DAC_CTRLB) Bypass DATABUF Write Protection */ -#define DAC_CTRLB_BDWP (_U_(0x1) << DAC_CTRLB_BDWP_Pos) -#define DAC_CTRLB_REFSEL_Pos 6 /**< \brief (DAC_CTRLB) Reference Selection */ -#define DAC_CTRLB_REFSEL_Msk (_U_(0x3) << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL(value) (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos)) -#define DAC_CTRLB_REFSEL_INT1V_Val _U_(0x0) /**< \brief (DAC_CTRLB) Internal 1.0V reference */ -#define DAC_CTRLB_REFSEL_AVCC_Val _U_(0x1) /**< \brief (DAC_CTRLB) AVCC */ -#define DAC_CTRLB_REFSEL_VREFP_Val _U_(0x2) /**< \brief (DAC_CTRLB) External reference */ -#define DAC_CTRLB_REFSEL_INT1V (DAC_CTRLB_REFSEL_INT1V_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL_AVCC (DAC_CTRLB_REFSEL_AVCC_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL_VREFP (DAC_CTRLB_REFSEL_VREFP_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_MASK _U_(0xDF) /**< \brief (DAC_CTRLB) MASK Register */ - -/* -------- DAC_EVCTRL : (DAC Offset: 0x2) (R/W 8) Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t STARTEI:1; /*!< bit: 0 Start Conversion Event Input */ - uint8_t EMPTYEO:1; /*!< bit: 1 Data Buffer Empty Event Output */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_EVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_EVCTRL_OFFSET 0x2 /**< \brief (DAC_EVCTRL offset) Event Control */ -#define DAC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_EVCTRL reset_value) Event Control */ - -#define DAC_EVCTRL_STARTEI_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input */ -#define DAC_EVCTRL_STARTEI (_U_(0x1) << DAC_EVCTRL_STARTEI_Pos) -#define DAC_EVCTRL_EMPTYEO_Pos 1 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output */ -#define DAC_EVCTRL_EMPTYEO (_U_(0x1) << DAC_EVCTRL_EMPTYEO_Pos) -#define DAC_EVCTRL_MASK _U_(0x03) /**< \brief (DAC_EVCTRL) MASK Register */ - -/* -------- DAC_INTENCLR : (DAC Offset: 0x4) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t UNDERRUN:1; /*!< bit: 0 Underrun Interrupt Enable */ - uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty Interrupt Enable */ - uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_INTENCLR_OFFSET 0x4 /**< \brief (DAC_INTENCLR offset) Interrupt Enable Clear */ -#define DAC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENCLR reset_value) Interrupt Enable Clear */ - -#define DAC_INTENCLR_UNDERRUN_Pos 0 /**< \brief (DAC_INTENCLR) Underrun Interrupt Enable */ -#define DAC_INTENCLR_UNDERRUN (_U_(0x1) << DAC_INTENCLR_UNDERRUN_Pos) -#define DAC_INTENCLR_EMPTY_Pos 1 /**< \brief (DAC_INTENCLR) Data Buffer Empty Interrupt Enable */ -#define DAC_INTENCLR_EMPTY (_U_(0x1) << DAC_INTENCLR_EMPTY_Pos) -#define DAC_INTENCLR_SYNCRDY_Pos 2 /**< \brief (DAC_INTENCLR) Synchronization Ready Interrupt Enable */ -#define DAC_INTENCLR_SYNCRDY (_U_(0x1) << DAC_INTENCLR_SYNCRDY_Pos) -#define DAC_INTENCLR_MASK _U_(0x07) /**< \brief (DAC_INTENCLR) MASK Register */ - -/* -------- DAC_INTENSET : (DAC Offset: 0x5) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t UNDERRUN:1; /*!< bit: 0 Underrun Interrupt Enable */ - uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty Interrupt Enable */ - uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_INTENSET_OFFSET 0x5 /**< \brief (DAC_INTENSET offset) Interrupt Enable Set */ -#define DAC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENSET reset_value) Interrupt Enable Set */ - -#define DAC_INTENSET_UNDERRUN_Pos 0 /**< \brief (DAC_INTENSET) Underrun Interrupt Enable */ -#define DAC_INTENSET_UNDERRUN (_U_(0x1) << DAC_INTENSET_UNDERRUN_Pos) -#define DAC_INTENSET_EMPTY_Pos 1 /**< \brief (DAC_INTENSET) Data Buffer Empty Interrupt Enable */ -#define DAC_INTENSET_EMPTY (_U_(0x1) << DAC_INTENSET_EMPTY_Pos) -#define DAC_INTENSET_SYNCRDY_Pos 2 /**< \brief (DAC_INTENSET) Synchronization Ready Interrupt Enable */ -#define DAC_INTENSET_SYNCRDY (_U_(0x1) << DAC_INTENSET_SYNCRDY_Pos) -#define DAC_INTENSET_MASK _U_(0x07) /**< \brief (DAC_INTENSET) MASK Register */ - -/* -------- DAC_INTFLAG : (DAC Offset: 0x6) (R/W 8) Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t UNDERRUN:1; /*!< bit: 0 Underrun */ - __I uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty */ - __I uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready */ - __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_INTFLAG_OFFSET 0x6 /**< \brief (DAC_INTFLAG offset) Interrupt Flag Status and Clear */ -#define DAC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (DAC_INTFLAG reset_value) Interrupt Flag Status and Clear */ - -#define DAC_INTFLAG_UNDERRUN_Pos 0 /**< \brief (DAC_INTFLAG) Underrun */ -#define DAC_INTFLAG_UNDERRUN (_U_(0x1) << DAC_INTFLAG_UNDERRUN_Pos) -#define DAC_INTFLAG_EMPTY_Pos 1 /**< \brief (DAC_INTFLAG) Data Buffer Empty */ -#define DAC_INTFLAG_EMPTY (_U_(0x1) << DAC_INTFLAG_EMPTY_Pos) -#define DAC_INTFLAG_SYNCRDY_Pos 2 /**< \brief (DAC_INTFLAG) Synchronization Ready */ -#define DAC_INTFLAG_SYNCRDY (_U_(0x1) << DAC_INTFLAG_SYNCRDY_Pos) -#define DAC_INTFLAG_MASK _U_(0x07) /**< \brief (DAC_INTFLAG) MASK Register */ - -/* -------- DAC_STATUS : (DAC Offset: 0x7) (R/ 8) Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t :7; /*!< bit: 0.. 6 Reserved */ - uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy Status */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_STATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_STATUS_OFFSET 0x7 /**< \brief (DAC_STATUS offset) Status */ -#define DAC_STATUS_RESETVALUE _U_(0x00) /**< \brief (DAC_STATUS reset_value) Status */ - -#define DAC_STATUS_SYNCBUSY_Pos 7 /**< \brief (DAC_STATUS) Synchronization Busy Status */ -#define DAC_STATUS_SYNCBUSY (_U_(0x1) << DAC_STATUS_SYNCBUSY_Pos) -#define DAC_STATUS_MASK _U_(0x80) /**< \brief (DAC_STATUS) MASK Register */ - -/* -------- DAC_DATA : (DAC Offset: 0x8) (R/W 16) Data -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t DATA:16; /*!< bit: 0..15 Data value to be converted */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DAC_DATA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_DATA_OFFSET 0x8 /**< \brief (DAC_DATA offset) Data */ -#define DAC_DATA_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATA reset_value) Data */ - -#define DAC_DATA_DATA_Pos 0 /**< \brief (DAC_DATA) Data value to be converted */ -#define DAC_DATA_DATA_Msk (_U_(0xFFFF) << DAC_DATA_DATA_Pos) -#define DAC_DATA_DATA(value) (DAC_DATA_DATA_Msk & ((value) << DAC_DATA_DATA_Pos)) -#define DAC_DATA_MASK _U_(0xFFFF) /**< \brief (DAC_DATA) MASK Register */ - -/* -------- DAC_DATABUF : (DAC Offset: 0xC) (R/W 16) Data Buffer -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t DATABUF:16; /*!< bit: 0..15 Data Buffer */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DAC_DATABUF_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_DATABUF_OFFSET 0xC /**< \brief (DAC_DATABUF offset) Data Buffer */ -#define DAC_DATABUF_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATABUF reset_value) Data Buffer */ - -#define DAC_DATABUF_DATABUF_Pos 0 /**< \brief (DAC_DATABUF) Data Buffer */ -#define DAC_DATABUF_DATABUF_Msk (_U_(0xFFFF) << DAC_DATABUF_DATABUF_Pos) -#define DAC_DATABUF_DATABUF(value) (DAC_DATABUF_DATABUF_Msk & ((value) << DAC_DATABUF_DATABUF_Pos)) -#define DAC_DATABUF_MASK _U_(0xFFFF) /**< \brief (DAC_DATABUF) MASK Register */ - -/** \brief DAC hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO DAC_CTRLA_Type CTRLA; /**< \brief Offset: 0x0 (R/W 8) Control A */ - __IO DAC_CTRLB_Type CTRLB; /**< \brief Offset: 0x1 (R/W 8) Control B */ - __IO DAC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x2 (R/W 8) Event Control */ - RoReg8 Reserved1[0x1]; - __IO DAC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x4 (R/W 8) Interrupt Enable Clear */ - __IO DAC_INTENSET_Type INTENSET; /**< \brief Offset: 0x5 (R/W 8) Interrupt Enable Set */ - __IO DAC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x6 (R/W 8) Interrupt Flag Status and Clear */ - __I DAC_STATUS_Type STATUS; /**< \brief Offset: 0x7 (R/ 8) Status */ - __IO DAC_DATA_Type DATA; /**< \brief Offset: 0x8 (R/W 16) Data */ - RoReg8 Reserved2[0x2]; - __IO DAC_DATABUF_Type DATABUF; /**< \brief Offset: 0xC (R/W 16) Data Buffer */ -} Dac; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD21_DAC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for DAC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21_DAC_COMPONENT_ +#define _SAMD21_DAC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR DAC */ +/* ========================================================================== */ +/** \addtogroup SAMD21_DAC Digital Analog Converter */ +/*@{*/ + +#define DAC_U2214 +#define REV_DAC 0x110 + +/* -------- DAC_CTRLA : (DAC Offset: 0x0) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_CTRLA_OFFSET 0x0 /**< \brief (DAC_CTRLA offset) Control A */ +#define DAC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLA reset_value) Control A */ + +#define DAC_CTRLA_SWRST_Pos 0 /**< \brief (DAC_CTRLA) Software Reset */ +#define DAC_CTRLA_SWRST (_U_(0x1) << DAC_CTRLA_SWRST_Pos) +#define DAC_CTRLA_ENABLE_Pos 1 /**< \brief (DAC_CTRLA) Enable */ +#define DAC_CTRLA_ENABLE (_U_(0x1) << DAC_CTRLA_ENABLE_Pos) +#define DAC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (DAC_CTRLA) Run in Standby */ +#define DAC_CTRLA_RUNSTDBY (_U_(0x1) << DAC_CTRLA_RUNSTDBY_Pos) +#define DAC_CTRLA_MASK _U_(0x07) /**< \brief (DAC_CTRLA) MASK Register */ + +/* -------- DAC_CTRLB : (DAC Offset: 0x1) (R/W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t EOEN:1; /*!< bit: 0 External Output Enable */ + uint8_t IOEN:1; /*!< bit: 1 Internal Output Enable */ + uint8_t LEFTADJ:1; /*!< bit: 2 Left Adjusted Data */ + uint8_t VPD:1; /*!< bit: 3 Voltage Pump Disable */ + uint8_t BDWP:1; /*!< bit: 4 Bypass DATABUF Write Protection */ + uint8_t :1; /*!< bit: 5 Reserved */ + uint8_t REFSEL:2; /*!< bit: 6.. 7 Reference Selection */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_CTRLB_OFFSET 0x1 /**< \brief (DAC_CTRLB offset) Control B */ +#define DAC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLB reset_value) Control B */ + +#define DAC_CTRLB_EOEN_Pos 0 /**< \brief (DAC_CTRLB) External Output Enable */ +#define DAC_CTRLB_EOEN (_U_(0x1) << DAC_CTRLB_EOEN_Pos) +#define DAC_CTRLB_IOEN_Pos 1 /**< \brief (DAC_CTRLB) Internal Output Enable */ +#define DAC_CTRLB_IOEN (_U_(0x1) << DAC_CTRLB_IOEN_Pos) +#define DAC_CTRLB_LEFTADJ_Pos 2 /**< \brief (DAC_CTRLB) Left Adjusted Data */ +#define DAC_CTRLB_LEFTADJ (_U_(0x1) << DAC_CTRLB_LEFTADJ_Pos) +#define DAC_CTRLB_VPD_Pos 3 /**< \brief (DAC_CTRLB) Voltage Pump Disable */ +#define DAC_CTRLB_VPD (_U_(0x1) << DAC_CTRLB_VPD_Pos) +#define DAC_CTRLB_BDWP_Pos 4 /**< \brief (DAC_CTRLB) Bypass DATABUF Write Protection */ +#define DAC_CTRLB_BDWP (_U_(0x1) << DAC_CTRLB_BDWP_Pos) +#define DAC_CTRLB_REFSEL_Pos 6 /**< \brief (DAC_CTRLB) Reference Selection */ +#define DAC_CTRLB_REFSEL_Msk (_U_(0x3) << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL(value) (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos)) +#define DAC_CTRLB_REFSEL_INT1V_Val _U_(0x0) /**< \brief (DAC_CTRLB) Internal 1.0V reference */ +#define DAC_CTRLB_REFSEL_AVCC_Val _U_(0x1) /**< \brief (DAC_CTRLB) AVCC */ +#define DAC_CTRLB_REFSEL_VREFP_Val _U_(0x2) /**< \brief (DAC_CTRLB) External reference */ +#define DAC_CTRLB_REFSEL_INT1V (DAC_CTRLB_REFSEL_INT1V_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_AVCC (DAC_CTRLB_REFSEL_AVCC_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_VREFP (DAC_CTRLB_REFSEL_VREFP_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_MASK _U_(0xDF) /**< \brief (DAC_CTRLB) MASK Register */ + +/* -------- DAC_EVCTRL : (DAC Offset: 0x2) (R/W 8) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STARTEI:1; /*!< bit: 0 Start Conversion Event Input */ + uint8_t EMPTYEO:1; /*!< bit: 1 Data Buffer Empty Event Output */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_EVCTRL_OFFSET 0x2 /**< \brief (DAC_EVCTRL offset) Event Control */ +#define DAC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_EVCTRL reset_value) Event Control */ + +#define DAC_EVCTRL_STARTEI_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input */ +#define DAC_EVCTRL_STARTEI (_U_(0x1) << DAC_EVCTRL_STARTEI_Pos) +#define DAC_EVCTRL_EMPTYEO_Pos 1 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output */ +#define DAC_EVCTRL_EMPTYEO (_U_(0x1) << DAC_EVCTRL_EMPTYEO_Pos) +#define DAC_EVCTRL_MASK _U_(0x03) /**< \brief (DAC_EVCTRL) MASK Register */ + +/* -------- DAC_INTENCLR : (DAC Offset: 0x4) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t UNDERRUN:1; /*!< bit: 0 Underrun Interrupt Enable */ + uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty Interrupt Enable */ + uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready Interrupt Enable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTENCLR_OFFSET 0x4 /**< \brief (DAC_INTENCLR offset) Interrupt Enable Clear */ +#define DAC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define DAC_INTENCLR_UNDERRUN_Pos 0 /**< \brief (DAC_INTENCLR) Underrun Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN (_U_(0x1) << DAC_INTENCLR_UNDERRUN_Pos) +#define DAC_INTENCLR_EMPTY_Pos 1 /**< \brief (DAC_INTENCLR) Data Buffer Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY (_U_(0x1) << DAC_INTENCLR_EMPTY_Pos) +#define DAC_INTENCLR_SYNCRDY_Pos 2 /**< \brief (DAC_INTENCLR) Synchronization Ready Interrupt Enable */ +#define DAC_INTENCLR_SYNCRDY (_U_(0x1) << DAC_INTENCLR_SYNCRDY_Pos) +#define DAC_INTENCLR_MASK _U_(0x07) /**< \brief (DAC_INTENCLR) MASK Register */ + +/* -------- DAC_INTENSET : (DAC Offset: 0x5) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t UNDERRUN:1; /*!< bit: 0 Underrun Interrupt Enable */ + uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty Interrupt Enable */ + uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready Interrupt Enable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTENSET_OFFSET 0x5 /**< \brief (DAC_INTENSET offset) Interrupt Enable Set */ +#define DAC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENSET reset_value) Interrupt Enable Set */ + +#define DAC_INTENSET_UNDERRUN_Pos 0 /**< \brief (DAC_INTENSET) Underrun Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN (_U_(0x1) << DAC_INTENSET_UNDERRUN_Pos) +#define DAC_INTENSET_EMPTY_Pos 1 /**< \brief (DAC_INTENSET) Data Buffer Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY (_U_(0x1) << DAC_INTENSET_EMPTY_Pos) +#define DAC_INTENSET_SYNCRDY_Pos 2 /**< \brief (DAC_INTENSET) Synchronization Ready Interrupt Enable */ +#define DAC_INTENSET_SYNCRDY (_U_(0x1) << DAC_INTENSET_SYNCRDY_Pos) +#define DAC_INTENSET_MASK _U_(0x07) /**< \brief (DAC_INTENSET) MASK Register */ + +/* -------- DAC_INTFLAG : (DAC Offset: 0x6) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t UNDERRUN:1; /*!< bit: 0 Underrun */ + __I uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty */ + __I uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready */ + __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTFLAG_OFFSET 0x6 /**< \brief (DAC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define DAC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (DAC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define DAC_INTFLAG_UNDERRUN_Pos 0 /**< \brief (DAC_INTFLAG) Underrun */ +#define DAC_INTFLAG_UNDERRUN (_U_(0x1) << DAC_INTFLAG_UNDERRUN_Pos) +#define DAC_INTFLAG_EMPTY_Pos 1 /**< \brief (DAC_INTFLAG) Data Buffer Empty */ +#define DAC_INTFLAG_EMPTY (_U_(0x1) << DAC_INTFLAG_EMPTY_Pos) +#define DAC_INTFLAG_SYNCRDY_Pos 2 /**< \brief (DAC_INTFLAG) Synchronization Ready */ +#define DAC_INTFLAG_SYNCRDY (_U_(0x1) << DAC_INTFLAG_SYNCRDY_Pos) +#define DAC_INTFLAG_MASK _U_(0x07) /**< \brief (DAC_INTFLAG) MASK Register */ + +/* -------- DAC_STATUS : (DAC Offset: 0x7) (R/ 8) Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t :7; /*!< bit: 0.. 6 Reserved */ + uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy Status */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_STATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_STATUS_OFFSET 0x7 /**< \brief (DAC_STATUS offset) Status */ +#define DAC_STATUS_RESETVALUE _U_(0x00) /**< \brief (DAC_STATUS reset_value) Status */ + +#define DAC_STATUS_SYNCBUSY_Pos 7 /**< \brief (DAC_STATUS) Synchronization Busy Status */ +#define DAC_STATUS_SYNCBUSY (_U_(0x1) << DAC_STATUS_SYNCBUSY_Pos) +#define DAC_STATUS_MASK _U_(0x80) /**< \brief (DAC_STATUS) MASK Register */ + +/* -------- DAC_DATA : (DAC Offset: 0x8) (R/W 16) Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DATA:16; /*!< bit: 0..15 Data value to be converted */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DATA_OFFSET 0x8 /**< \brief (DAC_DATA offset) Data */ +#define DAC_DATA_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATA reset_value) Data */ + +#define DAC_DATA_DATA_Pos 0 /**< \brief (DAC_DATA) Data value to be converted */ +#define DAC_DATA_DATA_Msk (_U_(0xFFFF) << DAC_DATA_DATA_Pos) +#define DAC_DATA_DATA(value) (DAC_DATA_DATA_Msk & ((value) << DAC_DATA_DATA_Pos)) +#define DAC_DATA_MASK _U_(0xFFFF) /**< \brief (DAC_DATA) MASK Register */ + +/* -------- DAC_DATABUF : (DAC Offset: 0xC) (R/W 16) Data Buffer -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DATABUF:16; /*!< bit: 0..15 Data Buffer */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DATABUF_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DATABUF_OFFSET 0xC /**< \brief (DAC_DATABUF offset) Data Buffer */ +#define DAC_DATABUF_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATABUF reset_value) Data Buffer */ + +#define DAC_DATABUF_DATABUF_Pos 0 /**< \brief (DAC_DATABUF) Data Buffer */ +#define DAC_DATABUF_DATABUF_Msk (_U_(0xFFFF) << DAC_DATABUF_DATABUF_Pos) +#define DAC_DATABUF_DATABUF(value) (DAC_DATABUF_DATABUF_Msk & ((value) << DAC_DATABUF_DATABUF_Pos)) +#define DAC_DATABUF_MASK _U_(0xFFFF) /**< \brief (DAC_DATABUF) MASK Register */ + +/** \brief DAC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO DAC_CTRLA_Type CTRLA; /**< \brief Offset: 0x0 (R/W 8) Control A */ + __IO DAC_CTRLB_Type CTRLB; /**< \brief Offset: 0x1 (R/W 8) Control B */ + __IO DAC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x2 (R/W 8) Event Control */ + RoReg8 Reserved1[0x1]; + __IO DAC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x4 (R/W 8) Interrupt Enable Clear */ + __IO DAC_INTENSET_Type INTENSET; /**< \brief Offset: 0x5 (R/W 8) Interrupt Enable Set */ + __IO DAC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x6 (R/W 8) Interrupt Flag Status and Clear */ + __I DAC_STATUS_Type STATUS; /**< \brief Offset: 0x7 (R/ 8) Status */ + __IO DAC_DATA_Type DATA; /**< \brief Offset: 0x8 (R/W 16) Data */ + RoReg8 Reserved2[0x2]; + __IO DAC_DATABUF_Type DATABUF; /**< \brief Offset: 0xC (R/W 16) Data Buffer */ +} Dac; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD21_DAC_COMPONENT_ */ diff --git a/lib/samd21/samd21a/include/component/dmac.h b/lib/samd21/samd21a/include/component/dmac.h index c09402a..7d80b41 100644 --- a/lib/samd21/samd21a/include/component/dmac.h +++ b/lib/samd21/samd21a/include/component/dmac.h @@ -1,1073 +1,1073 @@ -/** - * \file - * - * \brief Component description for DMAC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21_DMAC_COMPONENT_ -#define _SAMD21_DMAC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR DMAC */ -/* ========================================================================== */ -/** \addtogroup SAMD21_DMAC Direct Memory Access Controller */ -/*@{*/ - -#define DMAC_U2223 -#define REV_DMAC 0x100 - -/* -------- DMAC_CTRL : (DMAC Offset: 0x00) (R/W 16) Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t SWRST:1; /*!< bit: 0 Software Reset */ - uint16_t DMAENABLE:1; /*!< bit: 1 DMA Enable */ - uint16_t CRCENABLE:1; /*!< bit: 2 CRC Enable */ - uint16_t :5; /*!< bit: 3.. 7 Reserved */ - uint16_t LVLEN0:1; /*!< bit: 8 Priority Level 0 Enable */ - uint16_t LVLEN1:1; /*!< bit: 9 Priority Level 1 Enable */ - uint16_t LVLEN2:1; /*!< bit: 10 Priority Level 2 Enable */ - uint16_t LVLEN3:1; /*!< bit: 11 Priority Level 3 Enable */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint16_t :8; /*!< bit: 0.. 7 Reserved */ - uint16_t LVLEN:4; /*!< bit: 8..11 Priority Level x Enable */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } vec; /*!< Structure used for vec access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_CTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CTRL_OFFSET 0x00 /**< \brief (DMAC_CTRL offset) Control */ -#define DMAC_CTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_CTRL reset_value) Control */ - -#define DMAC_CTRL_SWRST_Pos 0 /**< \brief (DMAC_CTRL) Software Reset */ -#define DMAC_CTRL_SWRST (_U_(0x1) << DMAC_CTRL_SWRST_Pos) -#define DMAC_CTRL_DMAENABLE_Pos 1 /**< \brief (DMAC_CTRL) DMA Enable */ -#define DMAC_CTRL_DMAENABLE (_U_(0x1) << DMAC_CTRL_DMAENABLE_Pos) -#define DMAC_CTRL_CRCENABLE_Pos 2 /**< \brief (DMAC_CTRL) CRC Enable */ -#define DMAC_CTRL_CRCENABLE (_U_(0x1) << DMAC_CTRL_CRCENABLE_Pos) -#define DMAC_CTRL_LVLEN0_Pos 8 /**< \brief (DMAC_CTRL) Priority Level 0 Enable */ -#define DMAC_CTRL_LVLEN0 (_U_(1) << DMAC_CTRL_LVLEN0_Pos) -#define DMAC_CTRL_LVLEN1_Pos 9 /**< \brief (DMAC_CTRL) Priority Level 1 Enable */ -#define DMAC_CTRL_LVLEN1 (_U_(1) << DMAC_CTRL_LVLEN1_Pos) -#define DMAC_CTRL_LVLEN2_Pos 10 /**< \brief (DMAC_CTRL) Priority Level 2 Enable */ -#define DMAC_CTRL_LVLEN2 (_U_(1) << DMAC_CTRL_LVLEN2_Pos) -#define DMAC_CTRL_LVLEN3_Pos 11 /**< \brief (DMAC_CTRL) Priority Level 3 Enable */ -#define DMAC_CTRL_LVLEN3 (_U_(1) << DMAC_CTRL_LVLEN3_Pos) -#define DMAC_CTRL_LVLEN_Pos 8 /**< \brief (DMAC_CTRL) Priority Level x Enable */ -#define DMAC_CTRL_LVLEN_Msk (_U_(0xF) << DMAC_CTRL_LVLEN_Pos) -#define DMAC_CTRL_LVLEN(value) (DMAC_CTRL_LVLEN_Msk & ((value) << DMAC_CTRL_LVLEN_Pos)) -#define DMAC_CTRL_MASK _U_(0x0F07) /**< \brief (DMAC_CTRL) MASK Register */ - -/* -------- DMAC_CRCCTRL : (DMAC Offset: 0x02) (R/W 16) CRC Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t CRCBEATSIZE:2; /*!< bit: 0.. 1 CRC Beat Size */ - uint16_t CRCPOLY:2; /*!< bit: 2.. 3 CRC Polynomial Type */ - uint16_t :4; /*!< bit: 4.. 7 Reserved */ - uint16_t CRCSRC:6; /*!< bit: 8..13 CRC Input Source */ - uint16_t :2; /*!< bit: 14..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_CRCCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCCTRL_OFFSET 0x02 /**< \brief (DMAC_CRCCTRL offset) CRC Control */ -#define DMAC_CRCCTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_CRCCTRL reset_value) CRC Control */ - -#define DMAC_CRCCTRL_CRCBEATSIZE_Pos 0 /**< \brief (DMAC_CRCCTRL) CRC Beat Size */ -#define DMAC_CRCCTRL_CRCBEATSIZE_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCBEATSIZE(value) (DMAC_CRCCTRL_CRCBEATSIZE_Msk & ((value) << DMAC_CRCCTRL_CRCBEATSIZE_Pos)) -#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) 8-bit bus transfer */ -#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) 16-bit bus transfer */ -#define DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val _U_(0x2) /**< \brief (DMAC_CRCCTRL) 32-bit bus transfer */ -#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE (DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD (DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCBEATSIZE_WORD (DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCPOLY_Pos 2 /**< \brief (DMAC_CRCCTRL) CRC Polynomial Type */ -#define DMAC_CRCCTRL_CRCPOLY_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCPOLY_Pos) -#define DMAC_CRCCTRL_CRCPOLY(value) (DMAC_CRCCTRL_CRCPOLY_Msk & ((value) << DMAC_CRCCTRL_CRCPOLY_Pos)) -#define DMAC_CRCCTRL_CRCPOLY_CRC16_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) CRC-16 (CRC-CCITT) */ -#define DMAC_CRCCTRL_CRCPOLY_CRC32_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) CRC32 (IEEE 802.3) */ -#define DMAC_CRCCTRL_CRCPOLY_CRC16 (DMAC_CRCCTRL_CRCPOLY_CRC16_Val << DMAC_CRCCTRL_CRCPOLY_Pos) -#define DMAC_CRCCTRL_CRCPOLY_CRC32 (DMAC_CRCCTRL_CRCPOLY_CRC32_Val << DMAC_CRCCTRL_CRCPOLY_Pos) -#define DMAC_CRCCTRL_CRCSRC_Pos 8 /**< \brief (DMAC_CRCCTRL) CRC Input Source */ -#define DMAC_CRCCTRL_CRCSRC_Msk (_U_(0x3F) << DMAC_CRCCTRL_CRCSRC_Pos) -#define DMAC_CRCCTRL_CRCSRC(value) (DMAC_CRCCTRL_CRCSRC_Msk & ((value) << DMAC_CRCCTRL_CRCSRC_Pos)) -#define DMAC_CRCCTRL_CRCSRC_NOACT_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) No action */ -#define DMAC_CRCCTRL_CRCSRC_IO_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) I/O interface */ -#define DMAC_CRCCTRL_CRCSRC_NOACT (DMAC_CRCCTRL_CRCSRC_NOACT_Val << DMAC_CRCCTRL_CRCSRC_Pos) -#define DMAC_CRCCTRL_CRCSRC_IO (DMAC_CRCCTRL_CRCSRC_IO_Val << DMAC_CRCCTRL_CRCSRC_Pos) -#define DMAC_CRCCTRL_MASK _U_(0x3F0F) /**< \brief (DMAC_CRCCTRL) MASK Register */ - -/* -------- DMAC_CRCDATAIN : (DMAC Offset: 0x04) (R/W 32) CRC Data Input -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CRCDATAIN:32; /*!< bit: 0..31 CRC Data Input */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_CRCDATAIN_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCDATAIN_OFFSET 0x04 /**< \brief (DMAC_CRCDATAIN offset) CRC Data Input */ -#define DMAC_CRCDATAIN_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CRCDATAIN reset_value) CRC Data Input */ - -#define DMAC_CRCDATAIN_CRCDATAIN_Pos 0 /**< \brief (DMAC_CRCDATAIN) CRC Data Input */ -#define DMAC_CRCDATAIN_CRCDATAIN_Msk (_U_(0xFFFFFFFF) << DMAC_CRCDATAIN_CRCDATAIN_Pos) -#define DMAC_CRCDATAIN_CRCDATAIN(value) (DMAC_CRCDATAIN_CRCDATAIN_Msk & ((value) << DMAC_CRCDATAIN_CRCDATAIN_Pos)) -#define DMAC_CRCDATAIN_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_CRCDATAIN) MASK Register */ - -/* -------- DMAC_CRCCHKSUM : (DMAC Offset: 0x08) (R/W 32) CRC Checksum -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CRCCHKSUM:32; /*!< bit: 0..31 CRC Checksum */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_CRCCHKSUM_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCCHKSUM_OFFSET 0x08 /**< \brief (DMAC_CRCCHKSUM offset) CRC Checksum */ -#define DMAC_CRCCHKSUM_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CRCCHKSUM reset_value) CRC Checksum */ - -#define DMAC_CRCCHKSUM_CRCCHKSUM_Pos 0 /**< \brief (DMAC_CRCCHKSUM) CRC Checksum */ -#define DMAC_CRCCHKSUM_CRCCHKSUM_Msk (_U_(0xFFFFFFFF) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos) -#define DMAC_CRCCHKSUM_CRCCHKSUM(value) (DMAC_CRCCHKSUM_CRCCHKSUM_Msk & ((value) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos)) -#define DMAC_CRCCHKSUM_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_CRCCHKSUM) MASK Register */ - -/* -------- DMAC_CRCSTATUS : (DMAC Offset: 0x0C) (R/W 8) CRC Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t CRCBUSY:1; /*!< bit: 0 CRC Module Busy */ - uint8_t CRCZERO:1; /*!< bit: 1 CRC Zero */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CRCSTATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCSTATUS_OFFSET 0x0C /**< \brief (DMAC_CRCSTATUS offset) CRC Status */ -#define DMAC_CRCSTATUS_RESETVALUE _U_(0x00) /**< \brief (DMAC_CRCSTATUS reset_value) CRC Status */ - -#define DMAC_CRCSTATUS_CRCBUSY_Pos 0 /**< \brief (DMAC_CRCSTATUS) CRC Module Busy */ -#define DMAC_CRCSTATUS_CRCBUSY (_U_(0x1) << DMAC_CRCSTATUS_CRCBUSY_Pos) -#define DMAC_CRCSTATUS_CRCZERO_Pos 1 /**< \brief (DMAC_CRCSTATUS) CRC Zero */ -#define DMAC_CRCSTATUS_CRCZERO (_U_(0x1) << DMAC_CRCSTATUS_CRCZERO_Pos) -#define DMAC_CRCSTATUS_MASK _U_(0x03) /**< \brief (DMAC_CRCSTATUS) MASK Register */ - -/* -------- DMAC_DBGCTRL : (DMAC Offset: 0x0D) (R/W 8) Debug Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_DBGCTRL_OFFSET 0x0D /**< \brief (DMAC_DBGCTRL offset) Debug Control */ -#define DMAC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (DMAC_DBGCTRL reset_value) Debug Control */ - -#define DMAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DMAC_DBGCTRL) Debug Run */ -#define DMAC_DBGCTRL_DBGRUN (_U_(0x1) << DMAC_DBGCTRL_DBGRUN_Pos) -#define DMAC_DBGCTRL_MASK _U_(0x01) /**< \brief (DMAC_DBGCTRL) MASK Register */ - -/* -------- DMAC_QOSCTRL : (DMAC Offset: 0x0E) (R/W 8) QOS Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t WRBQOS:2; /*!< bit: 0.. 1 Write-Back Quality of Service */ - uint8_t FQOS:2; /*!< bit: 2.. 3 Fetch Quality of Service */ - uint8_t DQOS:2; /*!< bit: 4.. 5 Data Transfer Quality of Service */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_QOSCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_QOSCTRL_OFFSET 0x0E /**< \brief (DMAC_QOSCTRL offset) QOS Control */ -#define DMAC_QOSCTRL_RESETVALUE _U_(0x15) /**< \brief (DMAC_QOSCTRL reset_value) QOS Control */ - -#define DMAC_QOSCTRL_WRBQOS_Pos 0 /**< \brief (DMAC_QOSCTRL) Write-Back Quality of Service */ -#define DMAC_QOSCTRL_WRBQOS_Msk (_U_(0x3) << DMAC_QOSCTRL_WRBQOS_Pos) -#define DMAC_QOSCTRL_WRBQOS(value) (DMAC_QOSCTRL_WRBQOS_Msk & ((value) << DMAC_QOSCTRL_WRBQOS_Pos)) -#define DMAC_QOSCTRL_WRBQOS_DISABLE_Val _U_(0x0) /**< \brief (DMAC_QOSCTRL) Background (no sensitive operation) */ -#define DMAC_QOSCTRL_WRBQOS_LOW_Val _U_(0x1) /**< \brief (DMAC_QOSCTRL) Sensitive Bandwidth */ -#define DMAC_QOSCTRL_WRBQOS_MEDIUM_Val _U_(0x2) /**< \brief (DMAC_QOSCTRL) Sensitive Latency */ -#define DMAC_QOSCTRL_WRBQOS_HIGH_Val _U_(0x3) /**< \brief (DMAC_QOSCTRL) Critical Latency */ -#define DMAC_QOSCTRL_WRBQOS_DISABLE (DMAC_QOSCTRL_WRBQOS_DISABLE_Val << DMAC_QOSCTRL_WRBQOS_Pos) -#define DMAC_QOSCTRL_WRBQOS_LOW (DMAC_QOSCTRL_WRBQOS_LOW_Val << DMAC_QOSCTRL_WRBQOS_Pos) -#define DMAC_QOSCTRL_WRBQOS_MEDIUM (DMAC_QOSCTRL_WRBQOS_MEDIUM_Val << DMAC_QOSCTRL_WRBQOS_Pos) -#define DMAC_QOSCTRL_WRBQOS_HIGH (DMAC_QOSCTRL_WRBQOS_HIGH_Val << DMAC_QOSCTRL_WRBQOS_Pos) -#define DMAC_QOSCTRL_FQOS_Pos 2 /**< \brief (DMAC_QOSCTRL) Fetch Quality of Service */ -#define DMAC_QOSCTRL_FQOS_Msk (_U_(0x3) << DMAC_QOSCTRL_FQOS_Pos) -#define DMAC_QOSCTRL_FQOS(value) (DMAC_QOSCTRL_FQOS_Msk & ((value) << DMAC_QOSCTRL_FQOS_Pos)) -#define DMAC_QOSCTRL_FQOS_DISABLE_Val _U_(0x0) /**< \brief (DMAC_QOSCTRL) Background (no sensitive operation) */ -#define DMAC_QOSCTRL_FQOS_LOW_Val _U_(0x1) /**< \brief (DMAC_QOSCTRL) Sensitive Bandwidth */ -#define DMAC_QOSCTRL_FQOS_MEDIUM_Val _U_(0x2) /**< \brief (DMAC_QOSCTRL) Sensitive Latency */ -#define DMAC_QOSCTRL_FQOS_HIGH_Val _U_(0x3) /**< \brief (DMAC_QOSCTRL) Critical Latency */ -#define DMAC_QOSCTRL_FQOS_DISABLE (DMAC_QOSCTRL_FQOS_DISABLE_Val << DMAC_QOSCTRL_FQOS_Pos) -#define DMAC_QOSCTRL_FQOS_LOW (DMAC_QOSCTRL_FQOS_LOW_Val << DMAC_QOSCTRL_FQOS_Pos) -#define DMAC_QOSCTRL_FQOS_MEDIUM (DMAC_QOSCTRL_FQOS_MEDIUM_Val << DMAC_QOSCTRL_FQOS_Pos) -#define DMAC_QOSCTRL_FQOS_HIGH (DMAC_QOSCTRL_FQOS_HIGH_Val << DMAC_QOSCTRL_FQOS_Pos) -#define DMAC_QOSCTRL_DQOS_Pos 4 /**< \brief (DMAC_QOSCTRL) Data Transfer Quality of Service */ -#define DMAC_QOSCTRL_DQOS_Msk (_U_(0x3) << DMAC_QOSCTRL_DQOS_Pos) -#define DMAC_QOSCTRL_DQOS(value) (DMAC_QOSCTRL_DQOS_Msk & ((value) << DMAC_QOSCTRL_DQOS_Pos)) -#define DMAC_QOSCTRL_DQOS_DISABLE_Val _U_(0x0) /**< \brief (DMAC_QOSCTRL) Background (no sensitive operation) */ -#define DMAC_QOSCTRL_DQOS_LOW_Val _U_(0x1) /**< \brief (DMAC_QOSCTRL) Sensitive Bandwidth */ -#define DMAC_QOSCTRL_DQOS_MEDIUM_Val _U_(0x2) /**< \brief (DMAC_QOSCTRL) Sensitive Latency */ -#define DMAC_QOSCTRL_DQOS_HIGH_Val _U_(0x3) /**< \brief (DMAC_QOSCTRL) Critical Latency */ -#define DMAC_QOSCTRL_DQOS_DISABLE (DMAC_QOSCTRL_DQOS_DISABLE_Val << DMAC_QOSCTRL_DQOS_Pos) -#define DMAC_QOSCTRL_DQOS_LOW (DMAC_QOSCTRL_DQOS_LOW_Val << DMAC_QOSCTRL_DQOS_Pos) -#define DMAC_QOSCTRL_DQOS_MEDIUM (DMAC_QOSCTRL_DQOS_MEDIUM_Val << DMAC_QOSCTRL_DQOS_Pos) -#define DMAC_QOSCTRL_DQOS_HIGH (DMAC_QOSCTRL_DQOS_HIGH_Val << DMAC_QOSCTRL_DQOS_Pos) -#define DMAC_QOSCTRL_MASK _U_(0x3F) /**< \brief (DMAC_QOSCTRL) MASK Register */ - -/* -------- DMAC_SWTRIGCTRL : (DMAC Offset: 0x10) (R/W 32) Software Trigger Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWTRIG0:1; /*!< bit: 0 Channel 0 Software Trigger */ - uint32_t SWTRIG1:1; /*!< bit: 1 Channel 1 Software Trigger */ - uint32_t SWTRIG2:1; /*!< bit: 2 Channel 2 Software Trigger */ - uint32_t SWTRIG3:1; /*!< bit: 3 Channel 3 Software Trigger */ - uint32_t SWTRIG4:1; /*!< bit: 4 Channel 4 Software Trigger */ - uint32_t SWTRIG5:1; /*!< bit: 5 Channel 5 Software Trigger */ - uint32_t SWTRIG6:1; /*!< bit: 6 Channel 6 Software Trigger */ - uint32_t SWTRIG7:1; /*!< bit: 7 Channel 7 Software Trigger */ - uint32_t SWTRIG8:1; /*!< bit: 8 Channel 8 Software Trigger */ - uint32_t SWTRIG9:1; /*!< bit: 9 Channel 9 Software Trigger */ - uint32_t SWTRIG10:1; /*!< bit: 10 Channel 10 Software Trigger */ - uint32_t SWTRIG11:1; /*!< bit: 11 Channel 11 Software Trigger */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t SWTRIG:12; /*!< bit: 0..11 Channel x Software Trigger */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_SWTRIGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_SWTRIGCTRL_OFFSET 0x10 /**< \brief (DMAC_SWTRIGCTRL offset) Software Trigger Control */ -#define DMAC_SWTRIGCTRL_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_SWTRIGCTRL reset_value) Software Trigger Control */ - -#define DMAC_SWTRIGCTRL_SWTRIG0_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel 0 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG0 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG0_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG1_Pos 1 /**< \brief (DMAC_SWTRIGCTRL) Channel 1 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG1 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG1_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG2_Pos 2 /**< \brief (DMAC_SWTRIGCTRL) Channel 2 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG2 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG2_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG3_Pos 3 /**< \brief (DMAC_SWTRIGCTRL) Channel 3 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG3 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG3_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG4_Pos 4 /**< \brief (DMAC_SWTRIGCTRL) Channel 4 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG4 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG4_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG5_Pos 5 /**< \brief (DMAC_SWTRIGCTRL) Channel 5 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG5 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG5_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG6_Pos 6 /**< \brief (DMAC_SWTRIGCTRL) Channel 6 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG6 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG6_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG7_Pos 7 /**< \brief (DMAC_SWTRIGCTRL) Channel 7 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG7 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG7_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG8_Pos 8 /**< \brief (DMAC_SWTRIGCTRL) Channel 8 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG8 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG8_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG9_Pos 9 /**< \brief (DMAC_SWTRIGCTRL) Channel 9 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG9 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG9_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG10_Pos 10 /**< \brief (DMAC_SWTRIGCTRL) Channel 10 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG10 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG10_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG11_Pos 11 /**< \brief (DMAC_SWTRIGCTRL) Channel 11 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG11 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG11_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel x Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG_Msk (_U_(0xFFF) << DMAC_SWTRIGCTRL_SWTRIG_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG(value) (DMAC_SWTRIGCTRL_SWTRIG_Msk & ((value) << DMAC_SWTRIGCTRL_SWTRIG_Pos)) -#define DMAC_SWTRIGCTRL_MASK _U_(0x00000FFF) /**< \brief (DMAC_SWTRIGCTRL) MASK Register */ - -/* -------- DMAC_PRICTRL0 : (DMAC Offset: 0x14) (R/W 32) Priority Control 0 -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t LVLPRI0:4; /*!< bit: 0.. 3 Level 0 Channel Priority Number */ - uint32_t :3; /*!< bit: 4.. 6 Reserved */ - uint32_t RRLVLEN0:1; /*!< bit: 7 Level 0 Round-Robin Scheduling Enable */ - uint32_t LVLPRI1:4; /*!< bit: 8..11 Level 1 Channel Priority Number */ - uint32_t :3; /*!< bit: 12..14 Reserved */ - uint32_t RRLVLEN1:1; /*!< bit: 15 Level 1 Round-Robin Scheduling Enable */ - uint32_t LVLPRI2:4; /*!< bit: 16..19 Level 2 Channel Priority Number */ - uint32_t :3; /*!< bit: 20..22 Reserved */ - uint32_t RRLVLEN2:1; /*!< bit: 23 Level 2 Round-Robin Scheduling Enable */ - uint32_t LVLPRI3:4; /*!< bit: 24..27 Level 3 Channel Priority Number */ - uint32_t :3; /*!< bit: 28..30 Reserved */ - uint32_t RRLVLEN3:1; /*!< bit: 31 Level 3 Round-Robin Scheduling Enable */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_PRICTRL0_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_PRICTRL0_OFFSET 0x14 /**< \brief (DMAC_PRICTRL0 offset) Priority Control 0 */ -#define DMAC_PRICTRL0_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_PRICTRL0 reset_value) Priority Control 0 */ - -#define DMAC_PRICTRL0_LVLPRI0_Pos 0 /**< \brief (DMAC_PRICTRL0) Level 0 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI0_Msk (_U_(0xF) << DMAC_PRICTRL0_LVLPRI0_Pos) -#define DMAC_PRICTRL0_LVLPRI0(value) (DMAC_PRICTRL0_LVLPRI0_Msk & ((value) << DMAC_PRICTRL0_LVLPRI0_Pos)) -#define DMAC_PRICTRL0_RRLVLEN0_Pos 7 /**< \brief (DMAC_PRICTRL0) Level 0 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN0 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN0_Pos) -#define DMAC_PRICTRL0_LVLPRI1_Pos 8 /**< \brief (DMAC_PRICTRL0) Level 1 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI1_Msk (_U_(0xF) << DMAC_PRICTRL0_LVLPRI1_Pos) -#define DMAC_PRICTRL0_LVLPRI1(value) (DMAC_PRICTRL0_LVLPRI1_Msk & ((value) << DMAC_PRICTRL0_LVLPRI1_Pos)) -#define DMAC_PRICTRL0_RRLVLEN1_Pos 15 /**< \brief (DMAC_PRICTRL0) Level 1 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN1 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN1_Pos) -#define DMAC_PRICTRL0_LVLPRI2_Pos 16 /**< \brief (DMAC_PRICTRL0) Level 2 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI2_Msk (_U_(0xF) << DMAC_PRICTRL0_LVLPRI2_Pos) -#define DMAC_PRICTRL0_LVLPRI2(value) (DMAC_PRICTRL0_LVLPRI2_Msk & ((value) << DMAC_PRICTRL0_LVLPRI2_Pos)) -#define DMAC_PRICTRL0_RRLVLEN2_Pos 23 /**< \brief (DMAC_PRICTRL0) Level 2 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN2 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN2_Pos) -#define DMAC_PRICTRL0_LVLPRI3_Pos 24 /**< \brief (DMAC_PRICTRL0) Level 3 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI3_Msk (_U_(0xF) << DMAC_PRICTRL0_LVLPRI3_Pos) -#define DMAC_PRICTRL0_LVLPRI3(value) (DMAC_PRICTRL0_LVLPRI3_Msk & ((value) << DMAC_PRICTRL0_LVLPRI3_Pos)) -#define DMAC_PRICTRL0_RRLVLEN3_Pos 31 /**< \brief (DMAC_PRICTRL0) Level 3 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN3 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN3_Pos) -#define DMAC_PRICTRL0_MASK _U_(0x8F8F8F8F) /**< \brief (DMAC_PRICTRL0) MASK Register */ - -/* -------- DMAC_INTPEND : (DMAC Offset: 0x20) (R/W 16) Interrupt Pending -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t ID:4; /*!< bit: 0.. 3 Channel ID */ - uint16_t :4; /*!< bit: 4.. 7 Reserved */ - uint16_t TERR:1; /*!< bit: 8 Transfer Error */ - uint16_t TCMPL:1; /*!< bit: 9 Transfer Complete */ - uint16_t SUSP:1; /*!< bit: 10 Channel Suspend */ - uint16_t :2; /*!< bit: 11..12 Reserved */ - uint16_t FERR:1; /*!< bit: 13 Fetch Error */ - uint16_t BUSY:1; /*!< bit: 14 Busy */ - uint16_t PEND:1; /*!< bit: 15 Pending */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_INTPEND_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_INTPEND_OFFSET 0x20 /**< \brief (DMAC_INTPEND offset) Interrupt Pending */ -#define DMAC_INTPEND_RESETVALUE _U_(0x0000) /**< \brief (DMAC_INTPEND reset_value) Interrupt Pending */ - -#define DMAC_INTPEND_ID_Pos 0 /**< \brief (DMAC_INTPEND) Channel ID */ -#define DMAC_INTPEND_ID_Msk (_U_(0xF) << DMAC_INTPEND_ID_Pos) -#define DMAC_INTPEND_ID(value) (DMAC_INTPEND_ID_Msk & ((value) << DMAC_INTPEND_ID_Pos)) -#define DMAC_INTPEND_TERR_Pos 8 /**< \brief (DMAC_INTPEND) Transfer Error */ -#define DMAC_INTPEND_TERR (_U_(0x1) << DMAC_INTPEND_TERR_Pos) -#define DMAC_INTPEND_TCMPL_Pos 9 /**< \brief (DMAC_INTPEND) Transfer Complete */ -#define DMAC_INTPEND_TCMPL (_U_(0x1) << DMAC_INTPEND_TCMPL_Pos) -#define DMAC_INTPEND_SUSP_Pos 10 /**< \brief (DMAC_INTPEND) Channel Suspend */ -#define DMAC_INTPEND_SUSP (_U_(0x1) << DMAC_INTPEND_SUSP_Pos) -#define DMAC_INTPEND_FERR_Pos 13 /**< \brief (DMAC_INTPEND) Fetch Error */ -#define DMAC_INTPEND_FERR (_U_(0x1) << DMAC_INTPEND_FERR_Pos) -#define DMAC_INTPEND_BUSY_Pos 14 /**< \brief (DMAC_INTPEND) Busy */ -#define DMAC_INTPEND_BUSY (_U_(0x1) << DMAC_INTPEND_BUSY_Pos) -#define DMAC_INTPEND_PEND_Pos 15 /**< \brief (DMAC_INTPEND) Pending */ -#define DMAC_INTPEND_PEND (_U_(0x1) << DMAC_INTPEND_PEND_Pos) -#define DMAC_INTPEND_MASK _U_(0xE70F) /**< \brief (DMAC_INTPEND) MASK Register */ - -/* -------- DMAC_INTSTATUS : (DMAC Offset: 0x24) (R/ 32) Interrupt Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CHINT0:1; /*!< bit: 0 Channel 0 Pending Interrupt */ - uint32_t CHINT1:1; /*!< bit: 1 Channel 1 Pending Interrupt */ - uint32_t CHINT2:1; /*!< bit: 2 Channel 2 Pending Interrupt */ - uint32_t CHINT3:1; /*!< bit: 3 Channel 3 Pending Interrupt */ - uint32_t CHINT4:1; /*!< bit: 4 Channel 4 Pending Interrupt */ - uint32_t CHINT5:1; /*!< bit: 5 Channel 5 Pending Interrupt */ - uint32_t CHINT6:1; /*!< bit: 6 Channel 6 Pending Interrupt */ - uint32_t CHINT7:1; /*!< bit: 7 Channel 7 Pending Interrupt */ - uint32_t CHINT8:1; /*!< bit: 8 Channel 8 Pending Interrupt */ - uint32_t CHINT9:1; /*!< bit: 9 Channel 9 Pending Interrupt */ - uint32_t CHINT10:1; /*!< bit: 10 Channel 10 Pending Interrupt */ - uint32_t CHINT11:1; /*!< bit: 11 Channel 11 Pending Interrupt */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t CHINT:12; /*!< bit: 0..11 Channel x Pending Interrupt */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_INTSTATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_INTSTATUS_OFFSET 0x24 /**< \brief (DMAC_INTSTATUS offset) Interrupt Status */ -#define DMAC_INTSTATUS_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_INTSTATUS reset_value) Interrupt Status */ - -#define DMAC_INTSTATUS_CHINT0_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel 0 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT0 (_U_(1) << DMAC_INTSTATUS_CHINT0_Pos) -#define DMAC_INTSTATUS_CHINT1_Pos 1 /**< \brief (DMAC_INTSTATUS) Channel 1 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT1 (_U_(1) << DMAC_INTSTATUS_CHINT1_Pos) -#define DMAC_INTSTATUS_CHINT2_Pos 2 /**< \brief (DMAC_INTSTATUS) Channel 2 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT2 (_U_(1) << DMAC_INTSTATUS_CHINT2_Pos) -#define DMAC_INTSTATUS_CHINT3_Pos 3 /**< \brief (DMAC_INTSTATUS) Channel 3 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT3 (_U_(1) << DMAC_INTSTATUS_CHINT3_Pos) -#define DMAC_INTSTATUS_CHINT4_Pos 4 /**< \brief (DMAC_INTSTATUS) Channel 4 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT4 (_U_(1) << DMAC_INTSTATUS_CHINT4_Pos) -#define DMAC_INTSTATUS_CHINT5_Pos 5 /**< \brief (DMAC_INTSTATUS) Channel 5 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT5 (_U_(1) << DMAC_INTSTATUS_CHINT5_Pos) -#define DMAC_INTSTATUS_CHINT6_Pos 6 /**< \brief (DMAC_INTSTATUS) Channel 6 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT6 (_U_(1) << DMAC_INTSTATUS_CHINT6_Pos) -#define DMAC_INTSTATUS_CHINT7_Pos 7 /**< \brief (DMAC_INTSTATUS) Channel 7 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT7 (_U_(1) << DMAC_INTSTATUS_CHINT7_Pos) -#define DMAC_INTSTATUS_CHINT8_Pos 8 /**< \brief (DMAC_INTSTATUS) Channel 8 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT8 (_U_(1) << DMAC_INTSTATUS_CHINT8_Pos) -#define DMAC_INTSTATUS_CHINT9_Pos 9 /**< \brief (DMAC_INTSTATUS) Channel 9 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT9 (_U_(1) << DMAC_INTSTATUS_CHINT9_Pos) -#define DMAC_INTSTATUS_CHINT10_Pos 10 /**< \brief (DMAC_INTSTATUS) Channel 10 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT10 (_U_(1) << DMAC_INTSTATUS_CHINT10_Pos) -#define DMAC_INTSTATUS_CHINT11_Pos 11 /**< \brief (DMAC_INTSTATUS) Channel 11 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT11 (_U_(1) << DMAC_INTSTATUS_CHINT11_Pos) -#define DMAC_INTSTATUS_CHINT_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel x Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT_Msk (_U_(0xFFF) << DMAC_INTSTATUS_CHINT_Pos) -#define DMAC_INTSTATUS_CHINT(value) (DMAC_INTSTATUS_CHINT_Msk & ((value) << DMAC_INTSTATUS_CHINT_Pos)) -#define DMAC_INTSTATUS_MASK _U_(0x00000FFF) /**< \brief (DMAC_INTSTATUS) MASK Register */ - -/* -------- DMAC_BUSYCH : (DMAC Offset: 0x28) (R/ 32) Busy Channels -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t BUSYCH0:1; /*!< bit: 0 Busy Channel 0 */ - uint32_t BUSYCH1:1; /*!< bit: 1 Busy Channel 1 */ - uint32_t BUSYCH2:1; /*!< bit: 2 Busy Channel 2 */ - uint32_t BUSYCH3:1; /*!< bit: 3 Busy Channel 3 */ - uint32_t BUSYCH4:1; /*!< bit: 4 Busy Channel 4 */ - uint32_t BUSYCH5:1; /*!< bit: 5 Busy Channel 5 */ - uint32_t BUSYCH6:1; /*!< bit: 6 Busy Channel 6 */ - uint32_t BUSYCH7:1; /*!< bit: 7 Busy Channel 7 */ - uint32_t BUSYCH8:1; /*!< bit: 8 Busy Channel 8 */ - uint32_t BUSYCH9:1; /*!< bit: 9 Busy Channel 9 */ - uint32_t BUSYCH10:1; /*!< bit: 10 Busy Channel 10 */ - uint32_t BUSYCH11:1; /*!< bit: 11 Busy Channel 11 */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t BUSYCH:12; /*!< bit: 0..11 Busy Channel x */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_BUSYCH_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_BUSYCH_OFFSET 0x28 /**< \brief (DMAC_BUSYCH offset) Busy Channels */ -#define DMAC_BUSYCH_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_BUSYCH reset_value) Busy Channels */ - -#define DMAC_BUSYCH_BUSYCH0_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel 0 */ -#define DMAC_BUSYCH_BUSYCH0 (_U_(1) << DMAC_BUSYCH_BUSYCH0_Pos) -#define DMAC_BUSYCH_BUSYCH1_Pos 1 /**< \brief (DMAC_BUSYCH) Busy Channel 1 */ -#define DMAC_BUSYCH_BUSYCH1 (_U_(1) << DMAC_BUSYCH_BUSYCH1_Pos) -#define DMAC_BUSYCH_BUSYCH2_Pos 2 /**< \brief (DMAC_BUSYCH) Busy Channel 2 */ -#define DMAC_BUSYCH_BUSYCH2 (_U_(1) << DMAC_BUSYCH_BUSYCH2_Pos) -#define DMAC_BUSYCH_BUSYCH3_Pos 3 /**< \brief (DMAC_BUSYCH) Busy Channel 3 */ -#define DMAC_BUSYCH_BUSYCH3 (_U_(1) << DMAC_BUSYCH_BUSYCH3_Pos) -#define DMAC_BUSYCH_BUSYCH4_Pos 4 /**< \brief (DMAC_BUSYCH) Busy Channel 4 */ -#define DMAC_BUSYCH_BUSYCH4 (_U_(1) << DMAC_BUSYCH_BUSYCH4_Pos) -#define DMAC_BUSYCH_BUSYCH5_Pos 5 /**< \brief (DMAC_BUSYCH) Busy Channel 5 */ -#define DMAC_BUSYCH_BUSYCH5 (_U_(1) << DMAC_BUSYCH_BUSYCH5_Pos) -#define DMAC_BUSYCH_BUSYCH6_Pos 6 /**< \brief (DMAC_BUSYCH) Busy Channel 6 */ -#define DMAC_BUSYCH_BUSYCH6 (_U_(1) << DMAC_BUSYCH_BUSYCH6_Pos) -#define DMAC_BUSYCH_BUSYCH7_Pos 7 /**< \brief (DMAC_BUSYCH) Busy Channel 7 */ -#define DMAC_BUSYCH_BUSYCH7 (_U_(1) << DMAC_BUSYCH_BUSYCH7_Pos) -#define DMAC_BUSYCH_BUSYCH8_Pos 8 /**< \brief (DMAC_BUSYCH) Busy Channel 8 */ -#define DMAC_BUSYCH_BUSYCH8 (_U_(1) << DMAC_BUSYCH_BUSYCH8_Pos) -#define DMAC_BUSYCH_BUSYCH9_Pos 9 /**< \brief (DMAC_BUSYCH) Busy Channel 9 */ -#define DMAC_BUSYCH_BUSYCH9 (_U_(1) << DMAC_BUSYCH_BUSYCH9_Pos) -#define DMAC_BUSYCH_BUSYCH10_Pos 10 /**< \brief (DMAC_BUSYCH) Busy Channel 10 */ -#define DMAC_BUSYCH_BUSYCH10 (_U_(1) << DMAC_BUSYCH_BUSYCH10_Pos) -#define DMAC_BUSYCH_BUSYCH11_Pos 11 /**< \brief (DMAC_BUSYCH) Busy Channel 11 */ -#define DMAC_BUSYCH_BUSYCH11 (_U_(1) << DMAC_BUSYCH_BUSYCH11_Pos) -#define DMAC_BUSYCH_BUSYCH_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel x */ -#define DMAC_BUSYCH_BUSYCH_Msk (_U_(0xFFF) << DMAC_BUSYCH_BUSYCH_Pos) -#define DMAC_BUSYCH_BUSYCH(value) (DMAC_BUSYCH_BUSYCH_Msk & ((value) << DMAC_BUSYCH_BUSYCH_Pos)) -#define DMAC_BUSYCH_MASK _U_(0x00000FFF) /**< \brief (DMAC_BUSYCH) MASK Register */ - -/* -------- DMAC_PENDCH : (DMAC Offset: 0x2C) (R/ 32) Pending Channels -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t PENDCH0:1; /*!< bit: 0 Pending Channel 0 */ - uint32_t PENDCH1:1; /*!< bit: 1 Pending Channel 1 */ - uint32_t PENDCH2:1; /*!< bit: 2 Pending Channel 2 */ - uint32_t PENDCH3:1; /*!< bit: 3 Pending Channel 3 */ - uint32_t PENDCH4:1; /*!< bit: 4 Pending Channel 4 */ - uint32_t PENDCH5:1; /*!< bit: 5 Pending Channel 5 */ - uint32_t PENDCH6:1; /*!< bit: 6 Pending Channel 6 */ - uint32_t PENDCH7:1; /*!< bit: 7 Pending Channel 7 */ - uint32_t PENDCH8:1; /*!< bit: 8 Pending Channel 8 */ - uint32_t PENDCH9:1; /*!< bit: 9 Pending Channel 9 */ - uint32_t PENDCH10:1; /*!< bit: 10 Pending Channel 10 */ - uint32_t PENDCH11:1; /*!< bit: 11 Pending Channel 11 */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t PENDCH:12; /*!< bit: 0..11 Pending Channel x */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_PENDCH_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_PENDCH_OFFSET 0x2C /**< \brief (DMAC_PENDCH offset) Pending Channels */ -#define DMAC_PENDCH_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_PENDCH reset_value) Pending Channels */ - -#define DMAC_PENDCH_PENDCH0_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel 0 */ -#define DMAC_PENDCH_PENDCH0 (_U_(1) << DMAC_PENDCH_PENDCH0_Pos) -#define DMAC_PENDCH_PENDCH1_Pos 1 /**< \brief (DMAC_PENDCH) Pending Channel 1 */ -#define DMAC_PENDCH_PENDCH1 (_U_(1) << DMAC_PENDCH_PENDCH1_Pos) -#define DMAC_PENDCH_PENDCH2_Pos 2 /**< \brief (DMAC_PENDCH) Pending Channel 2 */ -#define DMAC_PENDCH_PENDCH2 (_U_(1) << DMAC_PENDCH_PENDCH2_Pos) -#define DMAC_PENDCH_PENDCH3_Pos 3 /**< \brief (DMAC_PENDCH) Pending Channel 3 */ -#define DMAC_PENDCH_PENDCH3 (_U_(1) << DMAC_PENDCH_PENDCH3_Pos) -#define DMAC_PENDCH_PENDCH4_Pos 4 /**< \brief (DMAC_PENDCH) Pending Channel 4 */ -#define DMAC_PENDCH_PENDCH4 (_U_(1) << DMAC_PENDCH_PENDCH4_Pos) -#define DMAC_PENDCH_PENDCH5_Pos 5 /**< \brief (DMAC_PENDCH) Pending Channel 5 */ -#define DMAC_PENDCH_PENDCH5 (_U_(1) << DMAC_PENDCH_PENDCH5_Pos) -#define DMAC_PENDCH_PENDCH6_Pos 6 /**< \brief (DMAC_PENDCH) Pending Channel 6 */ -#define DMAC_PENDCH_PENDCH6 (_U_(1) << DMAC_PENDCH_PENDCH6_Pos) -#define DMAC_PENDCH_PENDCH7_Pos 7 /**< \brief (DMAC_PENDCH) Pending Channel 7 */ -#define DMAC_PENDCH_PENDCH7 (_U_(1) << DMAC_PENDCH_PENDCH7_Pos) -#define DMAC_PENDCH_PENDCH8_Pos 8 /**< \brief (DMAC_PENDCH) Pending Channel 8 */ -#define DMAC_PENDCH_PENDCH8 (_U_(1) << DMAC_PENDCH_PENDCH8_Pos) -#define DMAC_PENDCH_PENDCH9_Pos 9 /**< \brief (DMAC_PENDCH) Pending Channel 9 */ -#define DMAC_PENDCH_PENDCH9 (_U_(1) << DMAC_PENDCH_PENDCH9_Pos) -#define DMAC_PENDCH_PENDCH10_Pos 10 /**< \brief (DMAC_PENDCH) Pending Channel 10 */ -#define DMAC_PENDCH_PENDCH10 (_U_(1) << DMAC_PENDCH_PENDCH10_Pos) -#define DMAC_PENDCH_PENDCH11_Pos 11 /**< \brief (DMAC_PENDCH) Pending Channel 11 */ -#define DMAC_PENDCH_PENDCH11 (_U_(1) << DMAC_PENDCH_PENDCH11_Pos) -#define DMAC_PENDCH_PENDCH_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel x */ -#define DMAC_PENDCH_PENDCH_Msk (_U_(0xFFF) << DMAC_PENDCH_PENDCH_Pos) -#define DMAC_PENDCH_PENDCH(value) (DMAC_PENDCH_PENDCH_Msk & ((value) << DMAC_PENDCH_PENDCH_Pos)) -#define DMAC_PENDCH_MASK _U_(0x00000FFF) /**< \brief (DMAC_PENDCH) MASK Register */ - -/* -------- DMAC_ACTIVE : (DMAC Offset: 0x30) (R/ 32) Active Channel and Levels -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t LVLEX0:1; /*!< bit: 0 Level 0 Channel Trigger Request Executing */ - uint32_t LVLEX1:1; /*!< bit: 1 Level 1 Channel Trigger Request Executing */ - uint32_t LVLEX2:1; /*!< bit: 2 Level 2 Channel Trigger Request Executing */ - uint32_t LVLEX3:1; /*!< bit: 3 Level 3 Channel Trigger Request Executing */ - uint32_t :4; /*!< bit: 4.. 7 Reserved */ - uint32_t ID:5; /*!< bit: 8..12 Active Channel ID */ - uint32_t :2; /*!< bit: 13..14 Reserved */ - uint32_t ABUSY:1; /*!< bit: 15 Active Channel Busy */ - uint32_t BTCNT:16; /*!< bit: 16..31 Active Channel Block Transfer Count */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t LVLEX:4; /*!< bit: 0.. 3 Level x Channel Trigger Request Executing */ - uint32_t :28; /*!< bit: 4..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_ACTIVE_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_ACTIVE_OFFSET 0x30 /**< \brief (DMAC_ACTIVE offset) Active Channel and Levels */ -#define DMAC_ACTIVE_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_ACTIVE reset_value) Active Channel and Levels */ - -#define DMAC_ACTIVE_LVLEX0_Pos 0 /**< \brief (DMAC_ACTIVE) Level 0 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX0 (_U_(1) << DMAC_ACTIVE_LVLEX0_Pos) -#define DMAC_ACTIVE_LVLEX1_Pos 1 /**< \brief (DMAC_ACTIVE) Level 1 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX1 (_U_(1) << DMAC_ACTIVE_LVLEX1_Pos) -#define DMAC_ACTIVE_LVLEX2_Pos 2 /**< \brief (DMAC_ACTIVE) Level 2 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX2 (_U_(1) << DMAC_ACTIVE_LVLEX2_Pos) -#define DMAC_ACTIVE_LVLEX3_Pos 3 /**< \brief (DMAC_ACTIVE) Level 3 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX3 (_U_(1) << DMAC_ACTIVE_LVLEX3_Pos) -#define DMAC_ACTIVE_LVLEX_Pos 0 /**< \brief (DMAC_ACTIVE) Level x Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX_Msk (_U_(0xF) << DMAC_ACTIVE_LVLEX_Pos) -#define DMAC_ACTIVE_LVLEX(value) (DMAC_ACTIVE_LVLEX_Msk & ((value) << DMAC_ACTIVE_LVLEX_Pos)) -#define DMAC_ACTIVE_ID_Pos 8 /**< \brief (DMAC_ACTIVE) Active Channel ID */ -#define DMAC_ACTIVE_ID_Msk (_U_(0x1F) << DMAC_ACTIVE_ID_Pos) -#define DMAC_ACTIVE_ID(value) (DMAC_ACTIVE_ID_Msk & ((value) << DMAC_ACTIVE_ID_Pos)) -#define DMAC_ACTIVE_ABUSY_Pos 15 /**< \brief (DMAC_ACTIVE) Active Channel Busy */ -#define DMAC_ACTIVE_ABUSY (_U_(0x1) << DMAC_ACTIVE_ABUSY_Pos) -#define DMAC_ACTIVE_BTCNT_Pos 16 /**< \brief (DMAC_ACTIVE) Active Channel Block Transfer Count */ -#define DMAC_ACTIVE_BTCNT_Msk (_U_(0xFFFF) << DMAC_ACTIVE_BTCNT_Pos) -#define DMAC_ACTIVE_BTCNT(value) (DMAC_ACTIVE_BTCNT_Msk & ((value) << DMAC_ACTIVE_BTCNT_Pos)) -#define DMAC_ACTIVE_MASK _U_(0xFFFF9F0F) /**< \brief (DMAC_ACTIVE) MASK Register */ - -/* -------- DMAC_BASEADDR : (DMAC Offset: 0x34) (R/W 32) Descriptor Memory Section Base Address -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t BASEADDR:32; /*!< bit: 0..31 Descriptor Memory Base Address */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_BASEADDR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_BASEADDR_OFFSET 0x34 /**< \brief (DMAC_BASEADDR offset) Descriptor Memory Section Base Address */ -#define DMAC_BASEADDR_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_BASEADDR reset_value) Descriptor Memory Section Base Address */ - -#define DMAC_BASEADDR_BASEADDR_Pos 0 /**< \brief (DMAC_BASEADDR) Descriptor Memory Base Address */ -#define DMAC_BASEADDR_BASEADDR_Msk (_U_(0xFFFFFFFF) << DMAC_BASEADDR_BASEADDR_Pos) -#define DMAC_BASEADDR_BASEADDR(value) (DMAC_BASEADDR_BASEADDR_Msk & ((value) << DMAC_BASEADDR_BASEADDR_Pos)) -#define DMAC_BASEADDR_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_BASEADDR) MASK Register */ - -/* -------- DMAC_WRBADDR : (DMAC Offset: 0x38) (R/W 32) Write-Back Memory Section Base Address -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t WRBADDR:32; /*!< bit: 0..31 Write-Back Memory Base Address */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_WRBADDR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_WRBADDR_OFFSET 0x38 /**< \brief (DMAC_WRBADDR offset) Write-Back Memory Section Base Address */ -#define DMAC_WRBADDR_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_WRBADDR reset_value) Write-Back Memory Section Base Address */ - -#define DMAC_WRBADDR_WRBADDR_Pos 0 /**< \brief (DMAC_WRBADDR) Write-Back Memory Base Address */ -#define DMAC_WRBADDR_WRBADDR_Msk (_U_(0xFFFFFFFF) << DMAC_WRBADDR_WRBADDR_Pos) -#define DMAC_WRBADDR_WRBADDR(value) (DMAC_WRBADDR_WRBADDR_Msk & ((value) << DMAC_WRBADDR_WRBADDR_Pos)) -#define DMAC_WRBADDR_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_WRBADDR) MASK Register */ - -/* -------- DMAC_CHID : (DMAC Offset: 0x3F) (R/W 8) Channel ID -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t ID:4; /*!< bit: 0.. 3 Channel ID */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHID_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHID_OFFSET 0x3F /**< \brief (DMAC_CHID offset) Channel ID */ -#define DMAC_CHID_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHID reset_value) Channel ID */ - -#define DMAC_CHID_ID_Pos 0 /**< \brief (DMAC_CHID) Channel ID */ -#define DMAC_CHID_ID_Msk (_U_(0xF) << DMAC_CHID_ID_Pos) -#define DMAC_CHID_ID(value) (DMAC_CHID_ID_Msk & ((value) << DMAC_CHID_ID_Pos)) -#define DMAC_CHID_MASK _U_(0x0F) /**< \brief (DMAC_CHID) MASK Register */ - -/* -------- DMAC_CHCTRLA : (DMAC Offset: 0x40) (R/W 8) Channel Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Channel Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Channel Enable */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHCTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHCTRLA_OFFSET 0x40 /**< \brief (DMAC_CHCTRLA offset) Channel Control A */ -#define DMAC_CHCTRLA_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHCTRLA reset_value) Channel Control A */ - -#define DMAC_CHCTRLA_SWRST_Pos 0 /**< \brief (DMAC_CHCTRLA) Channel Software Reset */ -#define DMAC_CHCTRLA_SWRST (_U_(0x1) << DMAC_CHCTRLA_SWRST_Pos) -#define DMAC_CHCTRLA_ENABLE_Pos 1 /**< \brief (DMAC_CHCTRLA) Channel Enable */ -#define DMAC_CHCTRLA_ENABLE (_U_(0x1) << DMAC_CHCTRLA_ENABLE_Pos) -#define DMAC_CHCTRLA_MASK _U_(0x03) /**< \brief (DMAC_CHCTRLA) MASK Register */ - -/* -------- DMAC_CHCTRLB : (DMAC Offset: 0x44) (R/W 32) Channel Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t EVACT:3; /*!< bit: 0.. 2 Event Input Action */ - uint32_t EVIE:1; /*!< bit: 3 Channel Event Input Enable */ - uint32_t EVOE:1; /*!< bit: 4 Channel Event Output Enable */ - uint32_t LVL:2; /*!< bit: 5.. 6 Channel Arbitration Level */ - uint32_t :1; /*!< bit: 7 Reserved */ - uint32_t TRIGSRC:6; /*!< bit: 8..13 Trigger Source */ - uint32_t :8; /*!< bit: 14..21 Reserved */ - uint32_t TRIGACT:2; /*!< bit: 22..23 Trigger Action */ - uint32_t CMD:2; /*!< bit: 24..25 Software Command */ - uint32_t :6; /*!< bit: 26..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_CHCTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHCTRLB_OFFSET 0x44 /**< \brief (DMAC_CHCTRLB offset) Channel Control B */ -#define DMAC_CHCTRLB_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CHCTRLB reset_value) Channel Control B */ - -#define DMAC_CHCTRLB_EVACT_Pos 0 /**< \brief (DMAC_CHCTRLB) Event Input Action */ -#define DMAC_CHCTRLB_EVACT_Msk (_U_(0x7) << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT(value) (DMAC_CHCTRLB_EVACT_Msk & ((value) << DMAC_CHCTRLB_EVACT_Pos)) -#define DMAC_CHCTRLB_EVACT_NOACT_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) No action */ -#define DMAC_CHCTRLB_EVACT_TRIG_Val _U_(0x1) /**< \brief (DMAC_CHCTRLB) Transfer and periodic transfer trigger */ -#define DMAC_CHCTRLB_EVACT_CTRIG_Val _U_(0x2) /**< \brief (DMAC_CHCTRLB) Conditional transfer trigger */ -#define DMAC_CHCTRLB_EVACT_CBLOCK_Val _U_(0x3) /**< \brief (DMAC_CHCTRLB) Conditional block transfer */ -#define DMAC_CHCTRLB_EVACT_SUSPEND_Val _U_(0x4) /**< \brief (DMAC_CHCTRLB) Channel suspend operation */ -#define DMAC_CHCTRLB_EVACT_RESUME_Val _U_(0x5) /**< \brief (DMAC_CHCTRLB) Channel resume operation */ -#define DMAC_CHCTRLB_EVACT_SSKIP_Val _U_(0x6) /**< \brief (DMAC_CHCTRLB) Skip next block suspend action */ -#define DMAC_CHCTRLB_EVACT_NOACT (DMAC_CHCTRLB_EVACT_NOACT_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT_TRIG (DMAC_CHCTRLB_EVACT_TRIG_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT_CTRIG (DMAC_CHCTRLB_EVACT_CTRIG_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT_CBLOCK (DMAC_CHCTRLB_EVACT_CBLOCK_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT_SUSPEND (DMAC_CHCTRLB_EVACT_SUSPEND_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT_RESUME (DMAC_CHCTRLB_EVACT_RESUME_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVACT_SSKIP (DMAC_CHCTRLB_EVACT_SSKIP_Val << DMAC_CHCTRLB_EVACT_Pos) -#define DMAC_CHCTRLB_EVIE_Pos 3 /**< \brief (DMAC_CHCTRLB) Channel Event Input Enable */ -#define DMAC_CHCTRLB_EVIE (_U_(0x1) << DMAC_CHCTRLB_EVIE_Pos) -#define DMAC_CHCTRLB_EVOE_Pos 4 /**< \brief (DMAC_CHCTRLB) Channel Event Output Enable */ -#define DMAC_CHCTRLB_EVOE (_U_(0x1) << DMAC_CHCTRLB_EVOE_Pos) -#define DMAC_CHCTRLB_LVL_Pos 5 /**< \brief (DMAC_CHCTRLB) Channel Arbitration Level */ -#define DMAC_CHCTRLB_LVL_Msk (_U_(0x3) << DMAC_CHCTRLB_LVL_Pos) -#define DMAC_CHCTRLB_LVL(value) (DMAC_CHCTRLB_LVL_Msk & ((value) << DMAC_CHCTRLB_LVL_Pos)) -#define DMAC_CHCTRLB_LVL_LVL0_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) Channel Priority Level 0 */ -#define DMAC_CHCTRLB_LVL_LVL1_Val _U_(0x1) /**< \brief (DMAC_CHCTRLB) Channel Priority Level 1 */ -#define DMAC_CHCTRLB_LVL_LVL2_Val _U_(0x2) /**< \brief (DMAC_CHCTRLB) Channel Priority Level 2 */ -#define DMAC_CHCTRLB_LVL_LVL3_Val _U_(0x3) /**< \brief (DMAC_CHCTRLB) Channel Priority Level 3 */ -#define DMAC_CHCTRLB_LVL_LVL0 (DMAC_CHCTRLB_LVL_LVL0_Val << DMAC_CHCTRLB_LVL_Pos) -#define DMAC_CHCTRLB_LVL_LVL1 (DMAC_CHCTRLB_LVL_LVL1_Val << DMAC_CHCTRLB_LVL_Pos) -#define DMAC_CHCTRLB_LVL_LVL2 (DMAC_CHCTRLB_LVL_LVL2_Val << DMAC_CHCTRLB_LVL_Pos) -#define DMAC_CHCTRLB_LVL_LVL3 (DMAC_CHCTRLB_LVL_LVL3_Val << DMAC_CHCTRLB_LVL_Pos) -#define DMAC_CHCTRLB_TRIGSRC_Pos 8 /**< \brief (DMAC_CHCTRLB) Trigger Source */ -#define DMAC_CHCTRLB_TRIGSRC_Msk (_U_(0x3F) << DMAC_CHCTRLB_TRIGSRC_Pos) -#define DMAC_CHCTRLB_TRIGSRC(value) (DMAC_CHCTRLB_TRIGSRC_Msk & ((value) << DMAC_CHCTRLB_TRIGSRC_Pos)) -#define DMAC_CHCTRLB_TRIGSRC_DISABLE_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) Only software/event triggers */ -#define DMAC_CHCTRLB_TRIGSRC_DISABLE (DMAC_CHCTRLB_TRIGSRC_DISABLE_Val << DMAC_CHCTRLB_TRIGSRC_Pos) -#define DMAC_CHCTRLB_TRIGACT_Pos 22 /**< \brief (DMAC_CHCTRLB) Trigger Action */ -#define DMAC_CHCTRLB_TRIGACT_Msk (_U_(0x3) << DMAC_CHCTRLB_TRIGACT_Pos) -#define DMAC_CHCTRLB_TRIGACT(value) (DMAC_CHCTRLB_TRIGACT_Msk & ((value) << DMAC_CHCTRLB_TRIGACT_Pos)) -#define DMAC_CHCTRLB_TRIGACT_BLOCK_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) One trigger required for each block transfer */ -#define DMAC_CHCTRLB_TRIGACT_BEAT_Val _U_(0x2) /**< \brief (DMAC_CHCTRLB) One trigger required for each beat transfer */ -#define DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val _U_(0x3) /**< \brief (DMAC_CHCTRLB) One trigger required for each transaction */ -#define DMAC_CHCTRLB_TRIGACT_BLOCK (DMAC_CHCTRLB_TRIGACT_BLOCK_Val << DMAC_CHCTRLB_TRIGACT_Pos) -#define DMAC_CHCTRLB_TRIGACT_BEAT (DMAC_CHCTRLB_TRIGACT_BEAT_Val << DMAC_CHCTRLB_TRIGACT_Pos) -#define DMAC_CHCTRLB_TRIGACT_TRANSACTION (DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val << DMAC_CHCTRLB_TRIGACT_Pos) -#define DMAC_CHCTRLB_CMD_Pos 24 /**< \brief (DMAC_CHCTRLB) Software Command */ -#define DMAC_CHCTRLB_CMD_Msk (_U_(0x3) << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_CMD(value) (DMAC_CHCTRLB_CMD_Msk & ((value) << DMAC_CHCTRLB_CMD_Pos)) -#define DMAC_CHCTRLB_CMD_NOACT_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) No action */ -#define DMAC_CHCTRLB_CMD_SUSPEND_Val _U_(0x1) /**< \brief (DMAC_CHCTRLB) Channel suspend operation */ -#define DMAC_CHCTRLB_CMD_RESUME_Val _U_(0x2) /**< \brief (DMAC_CHCTRLB) Channel resume operation */ -#define DMAC_CHCTRLB_CMD_NOACT (DMAC_CHCTRLB_CMD_NOACT_Val << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_CMD_SUSPEND (DMAC_CHCTRLB_CMD_SUSPEND_Val << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_CMD_RESUME (DMAC_CHCTRLB_CMD_RESUME_Val << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_MASK _U_(0x03C03F7F) /**< \brief (DMAC_CHCTRLB) MASK Register */ - -/* -------- DMAC_CHINTENCLR : (DMAC Offset: 0x4C) (R/W 8) Channel Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error Interrupt Enable */ - uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete Interrupt Enable */ - uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHINTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHINTENCLR_OFFSET 0x4C /**< \brief (DMAC_CHINTENCLR offset) Channel Interrupt Enable Clear */ -#define DMAC_CHINTENCLR_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTENCLR reset_value) Channel Interrupt Enable Clear */ - -#define DMAC_CHINTENCLR_TERR_Pos 0 /**< \brief (DMAC_CHINTENCLR) Channel Transfer Error Interrupt Enable */ -#define DMAC_CHINTENCLR_TERR (_U_(0x1) << DMAC_CHINTENCLR_TERR_Pos) -#define DMAC_CHINTENCLR_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENCLR) Channel Transfer Complete Interrupt Enable */ -#define DMAC_CHINTENCLR_TCMPL (_U_(0x1) << DMAC_CHINTENCLR_TCMPL_Pos) -#define DMAC_CHINTENCLR_SUSP_Pos 2 /**< \brief (DMAC_CHINTENCLR) Channel Suspend Interrupt Enable */ -#define DMAC_CHINTENCLR_SUSP (_U_(0x1) << DMAC_CHINTENCLR_SUSP_Pos) -#define DMAC_CHINTENCLR_MASK _U_(0x07) /**< \brief (DMAC_CHINTENCLR) MASK Register */ - -/* -------- DMAC_CHINTENSET : (DMAC Offset: 0x4D) (R/W 8) Channel Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error Interrupt Enable */ - uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete Interrupt Enable */ - uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHINTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHINTENSET_OFFSET 0x4D /**< \brief (DMAC_CHINTENSET offset) Channel Interrupt Enable Set */ -#define DMAC_CHINTENSET_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTENSET reset_value) Channel Interrupt Enable Set */ - -#define DMAC_CHINTENSET_TERR_Pos 0 /**< \brief (DMAC_CHINTENSET) Channel Transfer Error Interrupt Enable */ -#define DMAC_CHINTENSET_TERR (_U_(0x1) << DMAC_CHINTENSET_TERR_Pos) -#define DMAC_CHINTENSET_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENSET) Channel Transfer Complete Interrupt Enable */ -#define DMAC_CHINTENSET_TCMPL (_U_(0x1) << DMAC_CHINTENSET_TCMPL_Pos) -#define DMAC_CHINTENSET_SUSP_Pos 2 /**< \brief (DMAC_CHINTENSET) Channel Suspend Interrupt Enable */ -#define DMAC_CHINTENSET_SUSP (_U_(0x1) << DMAC_CHINTENSET_SUSP_Pos) -#define DMAC_CHINTENSET_MASK _U_(0x07) /**< \brief (DMAC_CHINTENSET) MASK Register */ - -/* -------- DMAC_CHINTFLAG : (DMAC Offset: 0x4E) (R/W 8) Channel Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error */ - __I uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete */ - __I uint8_t SUSP:1; /*!< bit: 2 Channel Suspend */ - __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHINTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHINTFLAG_OFFSET 0x4E /**< \brief (DMAC_CHINTFLAG offset) Channel Interrupt Flag Status and Clear */ -#define DMAC_CHINTFLAG_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTFLAG reset_value) Channel Interrupt Flag Status and Clear */ - -#define DMAC_CHINTFLAG_TERR_Pos 0 /**< \brief (DMAC_CHINTFLAG) Channel Transfer Error */ -#define DMAC_CHINTFLAG_TERR (_U_(0x1) << DMAC_CHINTFLAG_TERR_Pos) -#define DMAC_CHINTFLAG_TCMPL_Pos 1 /**< \brief (DMAC_CHINTFLAG) Channel Transfer Complete */ -#define DMAC_CHINTFLAG_TCMPL (_U_(0x1) << DMAC_CHINTFLAG_TCMPL_Pos) -#define DMAC_CHINTFLAG_SUSP_Pos 2 /**< \brief (DMAC_CHINTFLAG) Channel Suspend */ -#define DMAC_CHINTFLAG_SUSP (_U_(0x1) << DMAC_CHINTFLAG_SUSP_Pos) -#define DMAC_CHINTFLAG_MASK _U_(0x07) /**< \brief (DMAC_CHINTFLAG) MASK Register */ - -/* -------- DMAC_CHSTATUS : (DMAC Offset: 0x4F) (R/ 8) Channel Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t PEND:1; /*!< bit: 0 Channel Pending */ - uint8_t BUSY:1; /*!< bit: 1 Channel Busy */ - uint8_t FERR:1; /*!< bit: 2 Channel Fetch Error */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHSTATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHSTATUS_OFFSET 0x4F /**< \brief (DMAC_CHSTATUS offset) Channel Status */ -#define DMAC_CHSTATUS_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHSTATUS reset_value) Channel Status */ - -#define DMAC_CHSTATUS_PEND_Pos 0 /**< \brief (DMAC_CHSTATUS) Channel Pending */ -#define DMAC_CHSTATUS_PEND (_U_(0x1) << DMAC_CHSTATUS_PEND_Pos) -#define DMAC_CHSTATUS_BUSY_Pos 1 /**< \brief (DMAC_CHSTATUS) Channel Busy */ -#define DMAC_CHSTATUS_BUSY (_U_(0x1) << DMAC_CHSTATUS_BUSY_Pos) -#define DMAC_CHSTATUS_FERR_Pos 2 /**< \brief (DMAC_CHSTATUS) Channel Fetch Error */ -#define DMAC_CHSTATUS_FERR (_U_(0x1) << DMAC_CHSTATUS_FERR_Pos) -#define DMAC_CHSTATUS_MASK _U_(0x07) /**< \brief (DMAC_CHSTATUS) MASK Register */ - -/* -------- DMAC_BTCTRL : (DMAC Offset: 0x00) (R/W 16) Block Transfer Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t VALID:1; /*!< bit: 0 Descriptor Valid */ - uint16_t EVOSEL:2; /*!< bit: 1.. 2 Event Output Selection */ - uint16_t BLOCKACT:2; /*!< bit: 3.. 4 Block Action */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t BEATSIZE:2; /*!< bit: 8.. 9 Beat Size */ - uint16_t SRCINC:1; /*!< bit: 10 Source Address Increment Enable */ - uint16_t DSTINC:1; /*!< bit: 11 Destination Address Increment Enable */ - uint16_t STEPSEL:1; /*!< bit: 12 Step Selection */ - uint16_t STEPSIZE:3; /*!< bit: 13..15 Address Increment Step Size */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_BTCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_BTCTRL_OFFSET 0x00 /**< \brief (DMAC_BTCTRL offset) Block Transfer Control */ -#define DMAC_BTCTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_BTCTRL reset_value) Block Transfer Control */ - -#define DMAC_BTCTRL_VALID_Pos 0 /**< \brief (DMAC_BTCTRL) Descriptor Valid */ -#define DMAC_BTCTRL_VALID (_U_(0x1) << DMAC_BTCTRL_VALID_Pos) -#define DMAC_BTCTRL_EVOSEL_Pos 1 /**< \brief (DMAC_BTCTRL) Event Output Selection */ -#define DMAC_BTCTRL_EVOSEL_Msk (_U_(0x3) << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_EVOSEL(value) (DMAC_BTCTRL_EVOSEL_Msk & ((value) << DMAC_BTCTRL_EVOSEL_Pos)) -#define DMAC_BTCTRL_EVOSEL_DISABLE_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Event generation disabled */ -#define DMAC_BTCTRL_EVOSEL_BLOCK_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Event strobe when block transfer complete */ -#define DMAC_BTCTRL_EVOSEL_BEAT_Val _U_(0x3) /**< \brief (DMAC_BTCTRL) Event strobe when beat transfer complete */ -#define DMAC_BTCTRL_EVOSEL_DISABLE (DMAC_BTCTRL_EVOSEL_DISABLE_Val << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_EVOSEL_BLOCK (DMAC_BTCTRL_EVOSEL_BLOCK_Val << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_EVOSEL_BEAT (DMAC_BTCTRL_EVOSEL_BEAT_Val << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_BLOCKACT_Pos 3 /**< \brief (DMAC_BTCTRL) Block Action */ -#define DMAC_BTCTRL_BLOCKACT_Msk (_U_(0x3) << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT(value) (DMAC_BTCTRL_BLOCKACT_Msk & ((value) << DMAC_BTCTRL_BLOCKACT_Pos)) -#define DMAC_BTCTRL_BLOCKACT_NOACT_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction */ -#define DMAC_BTCTRL_BLOCKACT_INT_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction and block interrupt */ -#define DMAC_BTCTRL_BLOCKACT_SUSPEND_Val _U_(0x2) /**< \brief (DMAC_BTCTRL) Channel suspend operation is completed */ -#define DMAC_BTCTRL_BLOCKACT_BOTH_Val _U_(0x3) /**< \brief (DMAC_BTCTRL) Both channel suspend operation and block interrupt */ -#define DMAC_BTCTRL_BLOCKACT_NOACT (DMAC_BTCTRL_BLOCKACT_NOACT_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT_INT (DMAC_BTCTRL_BLOCKACT_INT_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT_SUSPEND (DMAC_BTCTRL_BLOCKACT_SUSPEND_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT_BOTH (DMAC_BTCTRL_BLOCKACT_BOTH_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BEATSIZE_Pos 8 /**< \brief (DMAC_BTCTRL) Beat Size */ -#define DMAC_BTCTRL_BEATSIZE_Msk (_U_(0x3) << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_BEATSIZE(value) (DMAC_BTCTRL_BEATSIZE_Msk & ((value) << DMAC_BTCTRL_BEATSIZE_Pos)) -#define DMAC_BTCTRL_BEATSIZE_BYTE_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) 8-bit bus transfer */ -#define DMAC_BTCTRL_BEATSIZE_HWORD_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) 16-bit bus transfer */ -#define DMAC_BTCTRL_BEATSIZE_WORD_Val _U_(0x2) /**< \brief (DMAC_BTCTRL) 32-bit bus transfer */ -#define DMAC_BTCTRL_BEATSIZE_BYTE (DMAC_BTCTRL_BEATSIZE_BYTE_Val << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_BEATSIZE_HWORD (DMAC_BTCTRL_BEATSIZE_HWORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_BEATSIZE_WORD (DMAC_BTCTRL_BEATSIZE_WORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_SRCINC_Pos 10 /**< \brief (DMAC_BTCTRL) Source Address Increment Enable */ -#define DMAC_BTCTRL_SRCINC (_U_(0x1) << DMAC_BTCTRL_SRCINC_Pos) -#define DMAC_BTCTRL_DSTINC_Pos 11 /**< \brief (DMAC_BTCTRL) Destination Address Increment Enable */ -#define DMAC_BTCTRL_DSTINC (_U_(0x1) << DMAC_BTCTRL_DSTINC_Pos) -#define DMAC_BTCTRL_STEPSEL_Pos 12 /**< \brief (DMAC_BTCTRL) Step Selection */ -#define DMAC_BTCTRL_STEPSEL (_U_(0x1) << DMAC_BTCTRL_STEPSEL_Pos) -#define DMAC_BTCTRL_STEPSEL_DST_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Step size settings apply to the destination address */ -#define DMAC_BTCTRL_STEPSEL_SRC_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Step size settings apply to the source address */ -#define DMAC_BTCTRL_STEPSEL_DST (DMAC_BTCTRL_STEPSEL_DST_Val << DMAC_BTCTRL_STEPSEL_Pos) -#define DMAC_BTCTRL_STEPSEL_SRC (DMAC_BTCTRL_STEPSEL_SRC_Val << DMAC_BTCTRL_STEPSEL_Pos) -#define DMAC_BTCTRL_STEPSIZE_Pos 13 /**< \brief (DMAC_BTCTRL) Address Increment Step Size */ -#define DMAC_BTCTRL_STEPSIZE_Msk (_U_(0x7) << DMAC_BTCTRL_STEPSIZE_Pos) -#define DMAC_BTCTRL_STEPSIZE(value) (DMAC_BTCTRL_STEPSIZE_Msk & ((value) << DMAC_BTCTRL_STEPSIZE_Pos)) -#define DMAC_BTCTRL_STEPSIZE_X1_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Next ADDR = ADDR + (1< -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E15A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21E15A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21E15A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21E15A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21E15A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21E15A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21E15A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21E15A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21E15A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21E15A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21E15A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21E15A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21E15A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21E15A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21E15A Serial Communication Interface 3 (SERCOM3) */ - TCC0_IRQn = 15, /**< 15 SAMD21E15A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21E15A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21E15A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21E15A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21E15A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21E15A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21E15A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21E15A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21E15A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21E15A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21E15A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pvReserved13; - void* pvReserved14; - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E15A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E15A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E15A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E15A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E15A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21e15a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00008000) /* 32 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 512 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00001000) /* 4 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x1001030D) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 1 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21E15A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21E15A_H */ +/** + * \file + * + * \brief Header file for SAMD21E15A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21E15A_ +#define _SAMD21E15A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21E15A_definitions SAMD21E15A definitions + * This file defines all structures and symbols for SAMD21E15A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E15A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21E15A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21E15A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21E15A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21E15A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21E15A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21E15A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21E15A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21E15A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21E15A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21E15A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21E15A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21E15A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21E15A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21E15A Serial Communication Interface 3 (SERCOM3) */ + TCC0_IRQn = 15, /**< 15 SAMD21E15A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21E15A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21E15A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21E15A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21E15A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21E15A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21E15A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21E15A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21E15A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21E15A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21E15A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pvReserved13; + void* pvReserved14; + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E15A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E15A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E15A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E15A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E15A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21e15a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00008000) /* 32 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 512 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00001000) /* 4 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x1001030D) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 1 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21E15A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21E15A_H */ diff --git a/lib/samd21/samd21a/include/samd21e16a.h b/lib/samd21/samd21a/include/samd21e16a.h index fb5e6df..2788ab0 100644 --- a/lib/samd21/samd21a/include/samd21e16a.h +++ b/lib/samd21/samd21a/include/samd21e16a.h @@ -1,559 +1,559 @@ -/** - * \file - * - * \brief Header file for SAMD21E16A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21E16A_ -#define _SAMD21E16A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21E16A_definitions SAMD21E16A definitions - * This file defines all structures and symbols for SAMD21E16A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E16A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21E16A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21E16A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21E16A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21E16A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21E16A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21E16A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21E16A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21E16A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21E16A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21E16A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21E16A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21E16A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21E16A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21E16A Serial Communication Interface 3 (SERCOM3) */ - TCC0_IRQn = 15, /**< 15 SAMD21E16A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21E16A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21E16A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21E16A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21E16A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21E16A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21E16A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21E16A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21E16A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21E16A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21E16A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pvReserved13; - void* pvReserved14; - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E16A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E16A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E16A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E16A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E16A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21e16a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00010000) /* 64 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00002000) /* 8 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x1001030C) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 1 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21E16A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21E16A_H */ +/** + * \file + * + * \brief Header file for SAMD21E16A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21E16A_ +#define _SAMD21E16A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21E16A_definitions SAMD21E16A definitions + * This file defines all structures and symbols for SAMD21E16A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E16A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21E16A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21E16A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21E16A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21E16A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21E16A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21E16A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21E16A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21E16A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21E16A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21E16A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21E16A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21E16A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21E16A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21E16A Serial Communication Interface 3 (SERCOM3) */ + TCC0_IRQn = 15, /**< 15 SAMD21E16A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21E16A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21E16A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21E16A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21E16A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21E16A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21E16A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21E16A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21E16A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21E16A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21E16A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pvReserved13; + void* pvReserved14; + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E16A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E16A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E16A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E16A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E16A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21e16a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00010000) /* 64 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00002000) /* 8 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x1001030C) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 1 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21E16A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21E16A_H */ diff --git a/lib/samd21/samd21a/include/samd21e17a.h b/lib/samd21/samd21a/include/samd21e17a.h index 26b25bb..8dde727 100644 --- a/lib/samd21/samd21a/include/samd21e17a.h +++ b/lib/samd21/samd21a/include/samd21e17a.h @@ -1,559 +1,559 @@ -/** - * \file - * - * \brief Header file for SAMD21E17A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21E17A_ -#define _SAMD21E17A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21E17A_definitions SAMD21E17A definitions - * This file defines all structures and symbols for SAMD21E17A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E17A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21E17A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21E17A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21E17A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21E17A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21E17A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21E17A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21E17A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21E17A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21E17A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21E17A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21E17A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21E17A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21E17A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21E17A Serial Communication Interface 3 (SERCOM3) */ - TCC0_IRQn = 15, /**< 15 SAMD21E17A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21E17A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21E17A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21E17A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21E17A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21E17A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21E17A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21E17A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21E17A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21E17A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21E17A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pvReserved13; - void* pvReserved14; - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E17A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E17A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E17A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E17A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E17A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21e17a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x1001030B) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 1 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21E17A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21E17A_H */ +/** + * \file + * + * \brief Header file for SAMD21E17A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21E17A_ +#define _SAMD21E17A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21E17A_definitions SAMD21E17A definitions + * This file defines all structures and symbols for SAMD21E17A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E17A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21E17A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21E17A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21E17A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21E17A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21E17A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21E17A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21E17A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21E17A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21E17A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21E17A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21E17A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21E17A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21E17A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21E17A Serial Communication Interface 3 (SERCOM3) */ + TCC0_IRQn = 15, /**< 15 SAMD21E17A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21E17A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21E17A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21E17A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21E17A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21E17A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21E17A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21E17A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21E17A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21E17A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21E17A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pvReserved13; + void* pvReserved14; + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E17A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E17A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E17A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E17A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E17A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21e17a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x1001030B) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 1 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21E17A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21E17A_H */ diff --git a/lib/samd21/samd21a/include/samd21e18a.h b/lib/samd21/samd21a/include/samd21e18a.h index afc982e..61b40de 100644 --- a/lib/samd21/samd21a/include/samd21e18a.h +++ b/lib/samd21/samd21a/include/samd21e18a.h @@ -1,559 +1,559 @@ -/** - * \file - * - * \brief Header file for SAMD21E18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21E18A_ -#define _SAMD21E18A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21E18A_definitions SAMD21E18A definitions - * This file defines all structures and symbols for SAMD21E18A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E18A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21E18A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21E18A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21E18A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21E18A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21E18A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21E18A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21E18A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21E18A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21E18A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21E18A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21E18A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21E18A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21E18A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21E18A Serial Communication Interface 3 (SERCOM3) */ - TCC0_IRQn = 15, /**< 15 SAMD21E18A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21E18A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21E18A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21E18A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21E18A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21E18A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21E18A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21E18A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21E18A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21E18A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21E18A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pvReserved13; - void* pvReserved14; - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E18A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E18A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E18A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E18A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21E18A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21e18a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 4096 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x1001030A) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 1 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21E18A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21E18A_H */ +/** + * \file + * + * \brief Header file for SAMD21E18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21E18A_ +#define _SAMD21E18A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21E18A_definitions SAMD21E18A definitions + * This file defines all structures and symbols for SAMD21E18A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E18A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21E18A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21E18A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21E18A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21E18A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21E18A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21E18A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21E18A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21E18A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21E18A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21E18A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21E18A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21E18A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21E18A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21E18A Serial Communication Interface 3 (SERCOM3) */ + TCC0_IRQn = 15, /**< 15 SAMD21E18A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21E18A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21E18A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21E18A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21E18A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21E18A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21E18A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21E18A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21E18A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21E18A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21E18A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pvReserved13; + void* pvReserved14; + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E18A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E18A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E18A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E18A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21E18A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21e18a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 4096 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x1001030A) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 1 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21E18A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21E18A_H */ diff --git a/lib/samd21/samd21a/include/samd21g15a.h b/lib/samd21/samd21a/include/samd21g15a.h index 4b6090e..47317ae 100644 --- a/lib/samd21/samd21a/include/samd21g15a.h +++ b/lib/samd21/samd21a/include/samd21g15a.h @@ -1,571 +1,571 @@ -/** - * \file - * - * \brief Header file for SAMD21G15A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21G15A_ -#define _SAMD21G15A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21G15A_definitions SAMD21G15A definitions - * This file defines all structures and symbols for SAMD21G15A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G15A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21G15A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21G15A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21G15A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21G15A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21G15A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21G15A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21G15A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21G15A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21G15A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21G15A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21G15A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21G15A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21G15A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21G15A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21G15A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21G15A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21G15A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21G15A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21G15A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21G15A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21G15A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21G15A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21G15A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21G15A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21G15A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21G15A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21G15A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G15A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G15A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G15A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G15A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G15A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21g15a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00008000) /* 32 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 512 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00001000) /* 4 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010308) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21G15A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21G15A_H */ +/** + * \file + * + * \brief Header file for SAMD21G15A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21G15A_ +#define _SAMD21G15A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21G15A_definitions SAMD21G15A definitions + * This file defines all structures and symbols for SAMD21G15A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G15A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21G15A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21G15A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21G15A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21G15A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21G15A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21G15A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21G15A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21G15A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21G15A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21G15A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21G15A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21G15A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21G15A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21G15A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21G15A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21G15A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21G15A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21G15A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21G15A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21G15A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21G15A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21G15A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21G15A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21G15A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21G15A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21G15A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21G15A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G15A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G15A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G15A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G15A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G15A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21g15a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00008000) /* 32 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 512 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00001000) /* 4 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010308) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21G15A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21G15A_H */ diff --git a/lib/samd21/samd21a/include/samd21g16a.h b/lib/samd21/samd21a/include/samd21g16a.h index 856389a..0b80a3c 100644 --- a/lib/samd21/samd21a/include/samd21g16a.h +++ b/lib/samd21/samd21a/include/samd21g16a.h @@ -1,571 +1,571 @@ -/** - * \file - * - * \brief Header file for SAMD21G16A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21G16A_ -#define _SAMD21G16A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21G16A_definitions SAMD21G16A definitions - * This file defines all structures and symbols for SAMD21G16A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G16A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21G16A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21G16A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21G16A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21G16A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21G16A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21G16A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21G16A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21G16A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21G16A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21G16A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21G16A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21G16A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21G16A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21G16A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21G16A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21G16A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21G16A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21G16A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21G16A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21G16A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21G16A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21G16A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21G16A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21G16A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21G16A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21G16A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21G16A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G16A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G16A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G16A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G16A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G16A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21g16a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00010000) /* 64 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00002000) /* 8 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010307) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21G16A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21G16A_H */ +/** + * \file + * + * \brief Header file for SAMD21G16A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21G16A_ +#define _SAMD21G16A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21G16A_definitions SAMD21G16A definitions + * This file defines all structures and symbols for SAMD21G16A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G16A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21G16A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21G16A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21G16A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21G16A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21G16A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21G16A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21G16A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21G16A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21G16A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21G16A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21G16A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21G16A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21G16A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21G16A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21G16A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21G16A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21G16A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21G16A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21G16A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21G16A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21G16A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21G16A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21G16A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21G16A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21G16A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21G16A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21G16A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G16A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G16A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G16A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G16A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G16A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21g16a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00010000) /* 64 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00002000) /* 8 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010307) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21G16A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21G16A_H */ diff --git a/lib/samd21/samd21a/include/samd21g17a.h b/lib/samd21/samd21a/include/samd21g17a.h index c8042f6..1221a79 100644 --- a/lib/samd21/samd21a/include/samd21g17a.h +++ b/lib/samd21/samd21a/include/samd21g17a.h @@ -1,571 +1,571 @@ -/** - * \file - * - * \brief Header file for SAMD21G17A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21G17A_ -#define _SAMD21G17A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21G17A_definitions SAMD21G17A definitions - * This file defines all structures and symbols for SAMD21G17A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21G17A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21G17A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21G17A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21G17A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21G17A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21G17A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21G17A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21G17A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21G17A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21G17A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21G17A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21G17A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21G17A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21G17A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21G17A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21G17A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21G17A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21G17A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21G17A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21G17A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21G17A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21G17A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21G17A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21G17A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21G17A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21G17A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21G17A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21g17a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010306) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21G17A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21G17A_H */ +/** + * \file + * + * \brief Header file for SAMD21G17A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21G17A_ +#define _SAMD21G17A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21G17A_definitions SAMD21G17A definitions + * This file defines all structures and symbols for SAMD21G17A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21G17A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21G17A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21G17A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21G17A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21G17A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21G17A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21G17A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21G17A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21G17A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21G17A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21G17A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21G17A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21G17A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21G17A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21G17A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21G17A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21G17A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21G17A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21G17A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21G17A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21G17A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21G17A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21G17A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21G17A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21G17A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21G17A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21G17A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21g17a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010306) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21G17A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21G17A_H */ diff --git a/lib/samd21/samd21a/include/samd21g17au.h b/lib/samd21/samd21a/include/samd21g17au.h index a4752c5..630a7d6 100644 --- a/lib/samd21/samd21a/include/samd21g17au.h +++ b/lib/samd21/samd21a/include/samd21g17au.h @@ -1,583 +1,583 @@ -/** - * \file - * - * \brief Header file for SAMD21G17AU - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21G17AU_ -#define _SAMD21G17AU_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21G17AU_definitions SAMD21G17AU definitions - * This file defines all structures and symbols for SAMD21G17AU: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17AU_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21G17AU-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21G17AU Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21G17AU System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21G17AU Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21G17AU Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21G17AU External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21G17AU Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21G17AU Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21G17AU Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21G17AU Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21G17AU Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21G17AU Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21G17AU Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21G17AU Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21G17AU Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21G17AU Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21G17AU Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21G17AU Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21G17AU Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21G17AU Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21G17AU Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21G17AU Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 21, /**< 21 SAMD21G17AU Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 22, /**< 22 SAMD21G17AU Basic Timer Counter 7 (TC7) */ - ADC_IRQn = 23, /**< 23 SAMD21G17AU Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21G17AU Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21G17AU Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21G17AU Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21G17AU Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17AU_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17AU_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17AU_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17AU_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G17AU_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21g17au.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010310) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21G17AU */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21G17AU_H */ +/** + * \file + * + * \brief Header file for SAMD21G17AU + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21G17AU_ +#define _SAMD21G17AU_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21G17AU_definitions SAMD21G17AU definitions + * This file defines all structures and symbols for SAMD21G17AU: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17AU_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21G17AU-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21G17AU Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21G17AU System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21G17AU Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21G17AU Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21G17AU External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21G17AU Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21G17AU Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21G17AU Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21G17AU Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21G17AU Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21G17AU Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21G17AU Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21G17AU Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21G17AU Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21G17AU Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21G17AU Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21G17AU Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21G17AU Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21G17AU Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21G17AU Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21G17AU Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 21, /**< 21 SAMD21G17AU Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 22, /**< 22 SAMD21G17AU Basic Timer Counter 7 (TC7) */ + ADC_IRQn = 23, /**< 23 SAMD21G17AU Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21G17AU Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21G17AU Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21G17AU Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21G17AU Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17AU_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17AU_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17AU_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17AU_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G17AU_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21g17au.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010310) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21G17AU */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21G17AU_H */ diff --git a/lib/samd21/samd21a/include/samd21g18a.h b/lib/samd21/samd21a/include/samd21g18a.h index 381a73b..5774e9b 100644 --- a/lib/samd21/samd21a/include/samd21g18a.h +++ b/lib/samd21/samd21a/include/samd21g18a.h @@ -1,571 +1,571 @@ -/** - * \file - * - * \brief Header file for SAMD21G18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21G18A_ -#define _SAMD21G18A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21G18A_definitions SAMD21G18A definitions - * This file defines all structures and symbols for SAMD21G18A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21G18A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21G18A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21G18A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21G18A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21G18A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21G18A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21G18A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21G18A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21G18A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21G18A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21G18A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21G18A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21G18A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21G18A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21G18A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21G18A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21G18A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21G18A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21G18A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21G18A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21G18A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21G18A Basic Timer Counter 5 (TC5) */ - ADC_IRQn = 23, /**< 23 SAMD21G18A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21G18A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21G18A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21G18A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21G18A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pvReserved21; - void* pvReserved22; - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21g18a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 4096 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010305) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21G18A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21G18A_H */ +/** + * \file + * + * \brief Header file for SAMD21G18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21G18A_ +#define _SAMD21G18A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21G18A_definitions SAMD21G18A definitions + * This file defines all structures and symbols for SAMD21G18A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21G18A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21G18A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21G18A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21G18A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21G18A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21G18A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21G18A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21G18A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21G18A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21G18A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21G18A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21G18A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21G18A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21G18A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21G18A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21G18A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21G18A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21G18A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21G18A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21G18A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21G18A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21G18A Basic Timer Counter 5 (TC5) */ + ADC_IRQn = 23, /**< 23 SAMD21G18A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21G18A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21G18A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21G18A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21G18A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pvReserved21; + void* pvReserved22; + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21g18a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 4096 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010305) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21G18A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21G18A_H */ diff --git a/lib/samd21/samd21a/include/samd21g18au.h b/lib/samd21/samd21a/include/samd21g18au.h index 06b66d0..c790793 100644 --- a/lib/samd21/samd21a/include/samd21g18au.h +++ b/lib/samd21/samd21a/include/samd21g18au.h @@ -1,583 +1,583 @@ -/** - * \file - * - * \brief Header file for SAMD21G18AU - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21G18AU_ -#define _SAMD21G18AU_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21G18AU_definitions SAMD21G18AU definitions - * This file defines all structures and symbols for SAMD21G18AU: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18AU_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21G18AU-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21G18AU Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21G18AU System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21G18AU Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21G18AU Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21G18AU External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21G18AU Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21G18AU Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21G18AU Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21G18AU Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21G18AU Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21G18AU Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21G18AU Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21G18AU Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21G18AU Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21G18AU Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21G18AU Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21G18AU Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21G18AU Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21G18AU Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21G18AU Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21G18AU Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 21, /**< 21 SAMD21G18AU Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 22, /**< 22 SAMD21G18AU Basic Timer Counter 7 (TC7) */ - ADC_IRQn = 23, /**< 23 SAMD21G18AU Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21G18AU Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21G18AU Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21G18AU Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21G18AU Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G18AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18AU_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18AU_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18AU_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18AU_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ -/** \defgroup SAMD21G18AU_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21g18au.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 4096 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x1001030F) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21G18AU */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21G18AU_H */ +/** + * \file + * + * \brief Header file for SAMD21G18AU + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21G18AU_ +#define _SAMD21G18AU_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21G18AU_definitions SAMD21G18AU definitions + * This file defines all structures and symbols for SAMD21G18AU: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18AU_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21G18AU-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21G18AU Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21G18AU System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21G18AU Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21G18AU Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21G18AU External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21G18AU Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21G18AU Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21G18AU Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21G18AU Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21G18AU Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21G18AU Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21G18AU Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21G18AU Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21G18AU Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21G18AU Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21G18AU Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21G18AU Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21G18AU Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21G18AU Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21G18AU Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21G18AU Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 21, /**< 21 SAMD21G18AU Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 22, /**< 22 SAMD21G18AU Basic Timer Counter 7 (TC7) */ + ADC_IRQn = 23, /**< 23 SAMD21G18AU Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21G18AU Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21G18AU Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21G18AU Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21G18AU Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G18AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18AU_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18AU_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18AU_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18AU_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ +/** \defgroup SAMD21G18AU_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21g18au.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 4096 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x1001030F) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21G18AU */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21G18AU_H */ diff --git a/lib/samd21/samd21a/include/samd21j15a.h b/lib/samd21/samd21a/include/samd21j15a.h index 98679a9..eb18097 100644 --- a/lib/samd21/samd21a/include/samd21j15a.h +++ b/lib/samd21/samd21a/include/samd21j15a.h @@ -1,583 +1,583 @@ -/** - * \file - * - * \brief Header file for SAMD21J15A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21J15A_ -#define _SAMD21J15A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21J15A_definitions SAMD21J15A definitions - * This file defines all structures and symbols for SAMD21J15A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J15A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21J15A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21J15A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21J15A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21J15A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21J15A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21J15A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21J15A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21J15A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21J15A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21J15A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21J15A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21J15A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21J15A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21J15A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21J15A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21J15A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21J15A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21J15A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21J15A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21J15A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21J15A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21J15A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 21, /**< 21 SAMD21J15A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 22, /**< 22 SAMD21J15A Basic Timer Counter 7 (TC7) */ - ADC_IRQn = 23, /**< 23 SAMD21J15A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21J15A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21J15A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21J15A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21J15A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J15A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J15A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J15A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J15A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J15A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21j15a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00008000) /* 32 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 512 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00001000) /* 4 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010303) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21J15A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21J15A_H */ +/** + * \file + * + * \brief Header file for SAMD21J15A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21J15A_ +#define _SAMD21J15A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21J15A_definitions SAMD21J15A definitions + * This file defines all structures and symbols for SAMD21J15A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J15A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21J15A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21J15A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21J15A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21J15A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21J15A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21J15A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21J15A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21J15A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21J15A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21J15A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21J15A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21J15A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21J15A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21J15A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21J15A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21J15A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21J15A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21J15A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21J15A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21J15A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21J15A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21J15A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 21, /**< 21 SAMD21J15A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 22, /**< 22 SAMD21J15A Basic Timer Counter 7 (TC7) */ + ADC_IRQn = 23, /**< 23 SAMD21J15A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21J15A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21J15A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21J15A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21J15A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J15A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J15A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J15A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J15A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J15A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21j15a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00008000) /* 32 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 512 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00001000) /* 4 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010303) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21J15A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21J15A_H */ diff --git a/lib/samd21/samd21a/include/samd21j16a.h b/lib/samd21/samd21a/include/samd21j16a.h index b1e9c1d..3504e60 100644 --- a/lib/samd21/samd21a/include/samd21j16a.h +++ b/lib/samd21/samd21a/include/samd21j16a.h @@ -1,583 +1,583 @@ -/** - * \file - * - * \brief Header file for SAMD21J16A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21J16A_ -#define _SAMD21J16A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21J16A_definitions SAMD21J16A definitions - * This file defines all structures and symbols for SAMD21J16A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J16A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21J16A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21J16A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21J16A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21J16A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21J16A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21J16A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21J16A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21J16A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21J16A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21J16A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21J16A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21J16A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21J16A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21J16A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21J16A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21J16A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21J16A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21J16A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21J16A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21J16A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21J16A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21J16A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 21, /**< 21 SAMD21J16A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 22, /**< 22 SAMD21J16A Basic Timer Counter 7 (TC7) */ - ADC_IRQn = 23, /**< 23 SAMD21J16A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21J16A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21J16A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21J16A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21J16A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J16A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J16A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J16A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J16A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J16A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21j16a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00010000) /* 64 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00002000) /* 8 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010302) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21J16A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21J16A_H */ +/** + * \file + * + * \brief Header file for SAMD21J16A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21J16A_ +#define _SAMD21J16A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21J16A_definitions SAMD21J16A definitions + * This file defines all structures and symbols for SAMD21J16A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J16A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21J16A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21J16A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21J16A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21J16A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21J16A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21J16A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21J16A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21J16A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21J16A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21J16A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21J16A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21J16A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21J16A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21J16A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21J16A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21J16A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21J16A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21J16A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21J16A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21J16A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21J16A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21J16A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 21, /**< 21 SAMD21J16A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 22, /**< 22 SAMD21J16A Basic Timer Counter 7 (TC7) */ + ADC_IRQn = 23, /**< 23 SAMD21J16A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21J16A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21J16A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21J16A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21J16A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J16A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J16A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J16A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J16A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J16A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21j16a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00010000) /* 64 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00002000) /* 8 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010302) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21J16A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21J16A_H */ diff --git a/lib/samd21/samd21a/include/samd21j17a.h b/lib/samd21/samd21a/include/samd21j17a.h index 55d62a6..066f1a7 100644 --- a/lib/samd21/samd21a/include/samd21j17a.h +++ b/lib/samd21/samd21a/include/samd21j17a.h @@ -1,583 +1,583 @@ -/** - * \file - * - * \brief Header file for SAMD21J17A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21J17A_ -#define _SAMD21J17A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21J17A_definitions SAMD21J17A definitions - * This file defines all structures and symbols for SAMD21J17A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J17A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21J17A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21J17A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21J17A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21J17A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21J17A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21J17A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21J17A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21J17A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21J17A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21J17A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21J17A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21J17A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21J17A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21J17A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21J17A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21J17A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21J17A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21J17A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21J17A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21J17A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21J17A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21J17A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 21, /**< 21 SAMD21J17A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 22, /**< 22 SAMD21J17A Basic Timer Counter 7 (TC7) */ - ADC_IRQn = 23, /**< 23 SAMD21J17A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21J17A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21J17A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21J17A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21J17A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J17A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J17A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J17A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J17A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J17A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21j17a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010301) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21J17A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21J17A_H */ +/** + * \file + * + * \brief Header file for SAMD21J17A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21J17A_ +#define _SAMD21J17A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21J17A_definitions SAMD21J17A definitions + * This file defines all structures and symbols for SAMD21J17A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J17A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21J17A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21J17A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21J17A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21J17A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21J17A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21J17A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21J17A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21J17A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21J17A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21J17A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21J17A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21J17A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21J17A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21J17A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21J17A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21J17A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21J17A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21J17A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21J17A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21J17A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21J17A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21J17A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 21, /**< 21 SAMD21J17A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 22, /**< 22 SAMD21J17A Basic Timer Counter 7 (TC7) */ + ADC_IRQn = 23, /**< 23 SAMD21J17A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21J17A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21J17A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21J17A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21J17A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J17A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J17A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J17A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J17A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J17A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21j17a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010301) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21J17A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21J17A_H */ diff --git a/lib/samd21/samd21a/include/samd21j18a.h b/lib/samd21/samd21a/include/samd21j18a.h index 40587c8..37d55c4 100644 --- a/lib/samd21/samd21a/include/samd21j18a.h +++ b/lib/samd21/samd21a/include/samd21j18a.h @@ -1,583 +1,583 @@ -/** - * \file - * - * \brief Header file for SAMD21J18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD21J18A_ -#define _SAMD21J18A_ - -/** - * \ingroup SAMD21_definitions - * \addtogroup SAMD21J18A_definitions SAMD21J18A definitions - * This file defines all structures and symbols for SAMD21J18A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J18A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M0+ Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD21J18A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD21J18A Power Manager (PM) */ - SYSCTRL_IRQn = 1, /**< 1 SAMD21J18A System Control (SYSCTRL) */ - WDT_IRQn = 2, /**< 2 SAMD21J18A Watchdog Timer (WDT) */ - RTC_IRQn = 3, /**< 3 SAMD21J18A Real-Time Counter (RTC) */ - EIC_IRQn = 4, /**< 4 SAMD21J18A External Interrupt Controller (EIC) */ - NVMCTRL_IRQn = 5, /**< 5 SAMD21J18A Non-Volatile Memory Controller (NVMCTRL) */ - DMAC_IRQn = 6, /**< 6 SAMD21J18A Direct Memory Access Controller (DMAC) */ - USB_IRQn = 7, /**< 7 SAMD21J18A Universal Serial Bus (USB) */ - EVSYS_IRQn = 8, /**< 8 SAMD21J18A Event System Interface (EVSYS) */ - SERCOM0_IRQn = 9, /**< 9 SAMD21J18A Serial Communication Interface 0 (SERCOM0) */ - SERCOM1_IRQn = 10, /**< 10 SAMD21J18A Serial Communication Interface 1 (SERCOM1) */ - SERCOM2_IRQn = 11, /**< 11 SAMD21J18A Serial Communication Interface 2 (SERCOM2) */ - SERCOM3_IRQn = 12, /**< 12 SAMD21J18A Serial Communication Interface 3 (SERCOM3) */ - SERCOM4_IRQn = 13, /**< 13 SAMD21J18A Serial Communication Interface 4 (SERCOM4) */ - SERCOM5_IRQn = 14, /**< 14 SAMD21J18A Serial Communication Interface 5 (SERCOM5) */ - TCC0_IRQn = 15, /**< 15 SAMD21J18A Timer Counter Control 0 (TCC0) */ - TCC1_IRQn = 16, /**< 16 SAMD21J18A Timer Counter Control 1 (TCC1) */ - TCC2_IRQn = 17, /**< 17 SAMD21J18A Timer Counter Control 2 (TCC2) */ - TC3_IRQn = 18, /**< 18 SAMD21J18A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 19, /**< 19 SAMD21J18A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 20, /**< 20 SAMD21J18A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 21, /**< 21 SAMD21J18A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 22, /**< 22 SAMD21J18A Basic Timer Counter 7 (TC7) */ - ADC_IRQn = 23, /**< 23 SAMD21J18A Analog Digital Converter (ADC) */ - AC_IRQn = 24, /**< 24 SAMD21J18A Analog Comparators (AC) */ - DAC_IRQn = 25, /**< 25 SAMD21J18A Digital Analog Converter (DAC) */ - PTC_IRQn = 26, /**< 26 SAMD21J18A Peripheral Touch Controller (PTC) */ - I2S_IRQn = 27, /**< 27 SAMD21J18A Inter-IC Sound Interface (I2S) */ - - PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pvReservedM12; - void* pvReservedM11; - void* pvReservedM10; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pvReservedM4; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnSYSCTRL_Handler; /* 1 System Control */ - void* pfnWDT_Handler; /* 2 Watchdog Timer */ - void* pfnRTC_Handler; /* 3 Real-Time Counter */ - void* pfnEIC_Handler; /* 4 External Interrupt Controller */ - void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ - void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ - void* pfnUSB_Handler; /* 7 Universal Serial Bus */ - void* pfnEVSYS_Handler; /* 8 Event System Interface */ - void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ - void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ - void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ - void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ - void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ - void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ - void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ - void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ - void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ - void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ - void* pfnADC_Handler; /* 23 Analog Digital Converter */ - void* pfnAC_Handler; /* 24 Analog Comparators */ - void* pfnDAC_Handler; /* 25 Digital Analog Converter */ - void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ - void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ - void* pvReserved28; -} DeviceVectors; - -/* Cortex-M0+ processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void SVCall_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void SYSCTRL_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_Handler ( void ); -void NVMCTRL_Handler ( void ); -void DMAC_Handler ( void ); -void USB_Handler ( void ); -void EVSYS_Handler ( void ); -void SERCOM0_Handler ( void ); -void SERCOM1_Handler ( void ); -void SERCOM2_Handler ( void ); -void SERCOM3_Handler ( void ); -void SERCOM4_Handler ( void ); -void SERCOM5_Handler ( void ); -void TCC0_Handler ( void ); -void TCC1_Handler ( void ); -void TCC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void ADC_Handler ( void ); -void AC_Handler ( void ); -void DAC_Handler ( void ); -void PTC_Handler ( void ); -void I2S_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals - */ - -#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ -#define __MPU_PRESENT 0 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd21.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J18A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/i2s.h" -#include "component/mtb.h" -#include "component/nvmctrl.h" -#include "component/pac.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/rtc.h" -#include "component/sercom.h" -#include "component/sysctrl.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J18A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/gclk.h" -#include "instance/sbmatrix.h" -#include "instance/i2s.h" -#include "instance/mtb.h" -#include "instance/nvmctrl.h" -#include "instance/pac0.h" -#include "instance/pac1.h" -#include "instance/pac2.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/ptc.h" -#include "instance/rtc.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sysctrl.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J18A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ -#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ - -// Peripheral instances on HPB1 bridge -#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_PORT 35 /**< \brief Port Module (PORT) */ -#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ -#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ -#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ - -// Peripheral instances on HPB2 bridge -#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ -#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ -#define ID_AC 81 /**< \brief Analog Comparators (AC) */ -#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ -#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ -#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ - -#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J18A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42004400) /**< \brief (AC) APB Base Address */ -#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ -#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ -#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ -#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ -#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ -#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ -#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ -#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ -#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ -#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ -#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ -#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ -#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ -#define USB (0x41005000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ -#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ - -#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ -#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ -#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ -#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ -#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ -#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ -#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ -#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ -#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ -#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ -#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ -#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ - -#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ -#define PTC_GCLK_ID 34 -#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ -#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ - -#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ -#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ -#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ - -#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD21J18A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd21j18a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ - -#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_PAGE_SIZE 64 -#define FLASH_NB_OF_PAGES 4096 -#define FLASH_USER_PAGE_SIZE 64 -#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ -#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x10010300) -#define EIC_EXTINT_NUM 16 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD21J18A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD21J18A_H */ +/** + * \file + * + * \brief Header file for SAMD21J18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD21J18A_ +#define _SAMD21J18A_ + +/** + * \ingroup SAMD21_definitions + * \addtogroup SAMD21J18A_definitions SAMD21J18A definitions + * This file defines all structures and symbols for SAMD21J18A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J18A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M0+ Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD21J18A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD21J18A Power Manager (PM) */ + SYSCTRL_IRQn = 1, /**< 1 SAMD21J18A System Control (SYSCTRL) */ + WDT_IRQn = 2, /**< 2 SAMD21J18A Watchdog Timer (WDT) */ + RTC_IRQn = 3, /**< 3 SAMD21J18A Real-Time Counter (RTC) */ + EIC_IRQn = 4, /**< 4 SAMD21J18A External Interrupt Controller (EIC) */ + NVMCTRL_IRQn = 5, /**< 5 SAMD21J18A Non-Volatile Memory Controller (NVMCTRL) */ + DMAC_IRQn = 6, /**< 6 SAMD21J18A Direct Memory Access Controller (DMAC) */ + USB_IRQn = 7, /**< 7 SAMD21J18A Universal Serial Bus (USB) */ + EVSYS_IRQn = 8, /**< 8 SAMD21J18A Event System Interface (EVSYS) */ + SERCOM0_IRQn = 9, /**< 9 SAMD21J18A Serial Communication Interface 0 (SERCOM0) */ + SERCOM1_IRQn = 10, /**< 10 SAMD21J18A Serial Communication Interface 1 (SERCOM1) */ + SERCOM2_IRQn = 11, /**< 11 SAMD21J18A Serial Communication Interface 2 (SERCOM2) */ + SERCOM3_IRQn = 12, /**< 12 SAMD21J18A Serial Communication Interface 3 (SERCOM3) */ + SERCOM4_IRQn = 13, /**< 13 SAMD21J18A Serial Communication Interface 4 (SERCOM4) */ + SERCOM5_IRQn = 14, /**< 14 SAMD21J18A Serial Communication Interface 5 (SERCOM5) */ + TCC0_IRQn = 15, /**< 15 SAMD21J18A Timer Counter Control 0 (TCC0) */ + TCC1_IRQn = 16, /**< 16 SAMD21J18A Timer Counter Control 1 (TCC1) */ + TCC2_IRQn = 17, /**< 17 SAMD21J18A Timer Counter Control 2 (TCC2) */ + TC3_IRQn = 18, /**< 18 SAMD21J18A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 19, /**< 19 SAMD21J18A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 20, /**< 20 SAMD21J18A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 21, /**< 21 SAMD21J18A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 22, /**< 22 SAMD21J18A Basic Timer Counter 7 (TC7) */ + ADC_IRQn = 23, /**< 23 SAMD21J18A Analog Digital Converter (ADC) */ + AC_IRQn = 24, /**< 24 SAMD21J18A Analog Comparators (AC) */ + DAC_IRQn = 25, /**< 25 SAMD21J18A Digital Analog Converter (DAC) */ + PTC_IRQn = 26, /**< 26 SAMD21J18A Peripheral Touch Controller (PTC) */ + I2S_IRQn = 27, /**< 27 SAMD21J18A Inter-IC Sound Interface (I2S) */ + + PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pvReservedM12; + void* pvReservedM11; + void* pvReservedM10; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pvReservedM4; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnSYSCTRL_Handler; /* 1 System Control */ + void* pfnWDT_Handler; /* 2 Watchdog Timer */ + void* pfnRTC_Handler; /* 3 Real-Time Counter */ + void* pfnEIC_Handler; /* 4 External Interrupt Controller */ + void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */ + void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */ + void* pfnUSB_Handler; /* 7 Universal Serial Bus */ + void* pfnEVSYS_Handler; /* 8 Event System Interface */ + void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */ + void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */ + void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */ + void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */ + void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */ + void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */ + void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */ + void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */ + void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */ + void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */ + void* pfnADC_Handler; /* 23 Analog Digital Converter */ + void* pfnAC_Handler; /* 24 Analog Comparators */ + void* pfnDAC_Handler; /* 25 Digital Analog Converter */ + void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */ + void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */ + void* pvReserved28; +} DeviceVectors; + +/* Cortex-M0+ processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void SVCall_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void SYSCTRL_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_Handler ( void ); +void NVMCTRL_Handler ( void ); +void DMAC_Handler ( void ); +void USB_Handler ( void ); +void EVSYS_Handler ( void ); +void SERCOM0_Handler ( void ); +void SERCOM1_Handler ( void ); +void SERCOM2_Handler ( void ); +void SERCOM3_Handler ( void ); +void SERCOM4_Handler ( void ); +void SERCOM5_Handler ( void ); +void TCC0_Handler ( void ); +void TCC1_Handler ( void ); +void TCC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void ADC_Handler ( void ); +void AC_Handler ( void ); +void DAC_Handler ( void ); +void PTC_Handler ( void ); +void I2S_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals + */ + +#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */ +#define __MPU_PRESENT 0 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd21.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J18A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/i2s.h" +#include "component/mtb.h" +#include "component/nvmctrl.h" +#include "component/pac.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/rtc.h" +#include "component/sercom.h" +#include "component/sysctrl.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J18A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/gclk.h" +#include "instance/sbmatrix.h" +#include "instance/i2s.h" +#include "instance/mtb.h" +#include "instance/nvmctrl.h" +#include "instance/pac0.h" +#include "instance/pac1.h" +#include "instance/pac2.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/ptc.h" +#include "instance/rtc.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sysctrl.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J18A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */ +#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */ + +// Peripheral instances on HPB1 bridge +#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_PORT 35 /**< \brief Port Module (PORT) */ +#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */ +#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */ +#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */ + +// Peripheral instances on HPB2 bridge +#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */ +#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */ +#define ID_AC 81 /**< \brief Analog Comparators (AC) */ +#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */ +#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */ +#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */ + +#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J18A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42004400) /**< \brief (AC) APB Base Address */ +#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */ +#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */ +#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */ +#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */ +#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */ +#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */ +#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */ +#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */ +#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */ +#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */ +#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */ +#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */ +#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */ +#define USB (0x41005000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */ +#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */ + +#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */ +#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */ +#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */ +#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */ +#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */ +#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */ +#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */ +#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */ +#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */ +#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */ +#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ +#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */ + +#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */ +#define PTC_GCLK_ID 34 +#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */ +#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */ + +#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */ +#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */ +#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */ + +#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD21J18A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd21j18a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ + +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 64 +#define FLASH_NB_OF_PAGES 4096 +#define FLASH_USER_PAGE_SIZE 64 +#define HMCRAMC0_SIZE _UL_(0x00008000) /* 32 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */ +#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x10010300) +#define EIC_EXTINT_NUM 16 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD21J18A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD21J18A_H */ diff --git a/lib/samd21/samd21a/include/system_samd21.h b/lib/samd21/samd21a/include/system_samd21.h index de6f4f1..ed948b6 100644 --- a/lib/samd21/samd21a/include/system_samd21.h +++ b/lib/samd21/samd21a/include/system_samd21.h @@ -1,48 +1,48 @@ -/** - * \file - * - * \brief Low-level initialization functions called upon chip startup - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SYSTEM_SAMD21_H_INCLUDED_ -#define _SYSTEM_SAMD21_H_INCLUDED_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ - -void SystemInit(void); -void SystemCoreClockUpdate(void); - -#ifdef __cplusplus -} -#endif - -#endif /* SYSTEM_SAMD21_H_INCLUDED */ +/** + * \file + * + * \brief Low-level initialization functions called upon chip startup + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SYSTEM_SAMD21_H_INCLUDED_ +#define _SYSTEM_SAMD21_H_INCLUDED_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +void SystemInit(void); +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_SAMD21_H_INCLUDED */ diff --git a/lib/samd51/samd51a/gcc/system_samd51.c b/lib/samd51/samd51a/gcc/system_samd51.c index 310dda3..bebd18f 100644 --- a/lib/samd51/samd51a/gcc/system_samd51.c +++ b/lib/samd51/samd51a/gcc/system_samd51.c @@ -1,64 +1,64 @@ -/** - * \file - * - * \brief Low-level initialization functions called upon chip startup. - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#include "samd51.h" - -/** - * Initial system clock frequency. The System RC Oscillator (RCSYS) provides - * the source for the main clock at chip startup. - */ -#define __SYSTEM_CLOCK (48000000) - -uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/ - -/** - * Initialize the system - * - * @brief Setup the microcontroller system. - * Initialize the System and update the SystemCoreClock variable. - */ -void SystemInit(void) -{ - // Keep the default device state after reset - SystemCoreClock = __SYSTEM_CLOCK; - return; -} - -/** - * Update SystemCoreClock variable - * - * @brief Updates the SystemCoreClock with current core Clock - * retrieved from cpu registers. - */ -void SystemCoreClockUpdate(void) -{ - // Not implemented - SystemCoreClock = __SYSTEM_CLOCK; - return; -} +/** + * \file + * + * \brief Low-level initialization functions called upon chip startup. + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#include "samd51.h" + +/** + * Initial system clock frequency. The System RC Oscillator (RCSYS) provides + * the source for the main clock at chip startup. + */ +#define __SYSTEM_CLOCK (48000000) + +uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/ + +/** + * Initialize the system + * + * @brief Setup the microcontroller system. + * Initialize the System and update the SystemCoreClock variable. + */ +void SystemInit(void) +{ + // Keep the default device state after reset + SystemCoreClock = __SYSTEM_CLOCK; + return; +} + +/** + * Update SystemCoreClock variable + * + * @brief Updates the SystemCoreClock with current core Clock + * retrieved from cpu registers. + */ +void SystemCoreClockUpdate(void) +{ + // Not implemented + SystemCoreClock = __SYSTEM_CLOCK; + return; +} diff --git a/lib/samd51/samd51a/include/component-version.h b/lib/samd51/samd51a/include/component-version.h index ec33360..2e2976f 100644 --- a/lib/samd51/samd51a/include/component-version.h +++ b/lib/samd51/samd51a/include/component-version.h @@ -1,64 +1,64 @@ -/** - * \file - * - * \brief Component version header file - * - * Copyright (c) 2018 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. - * - * \license_start - * - * \page License - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \license_stop - * - */ - -#ifndef _COMPONENT_VERSION_H_INCLUDED -#define _COMPONENT_VERSION_H_INCLUDED - -#define COMPONENT_VERSION_MAJOR 1 -#define COMPONENT_VERSION_MINOR 1 - -// -// The COMPONENT_VERSION define is composed of the major and the minor version number. -// -// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. -// The rest of the COMPONENT_VERSION is the major version. -// -#define COMPONENT_VERSION 10001 - -// -// The build number does not refer to the component, but to the build number -// of the device pack that provides the component. -// -#define BUILD_NUMBER 96 - -// -// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. -// -#define COMPONENT_VERSION_STRING "1.1" - -// -// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. -// -// The COMPONENT_DATE_STRING is written out using the following strftime pattern. -// -// "%Y-%m-%d %H:%M:%S" -// -// -#define COMPONENT_DATE_STRING "2018-09-21 03:51:18" - -#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ - +/** + * \file + * + * \brief Component version header file + * + * Copyright (c) 2018 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. + * + * \license_start + * + * \page License + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \license_stop + * + */ + +#ifndef _COMPONENT_VERSION_H_INCLUDED +#define _COMPONENT_VERSION_H_INCLUDED + +#define COMPONENT_VERSION_MAJOR 1 +#define COMPONENT_VERSION_MINOR 1 + +// +// The COMPONENT_VERSION define is composed of the major and the minor version number. +// +// The last four digits of the COMPONENT_VERSION is the minor version with leading zeros. +// The rest of the COMPONENT_VERSION is the major version. +// +#define COMPONENT_VERSION 10001 + +// +// The build number does not refer to the component, but to the build number +// of the device pack that provides the component. +// +#define BUILD_NUMBER 96 + +// +// The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. +// +#define COMPONENT_VERSION_STRING "1.1" + +// +// The COMPONENT_DATE_STRING contains a timestamp of when the pack was generated. +// +// The COMPONENT_DATE_STRING is written out using the following strftime pattern. +// +// "%Y-%m-%d %H:%M:%S" +// +// +#define COMPONENT_DATE_STRING "2018-09-21 03:51:18" + +#endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ + diff --git a/lib/samd51/samd51a/include/component/ac.h b/lib/samd51/samd51a/include/component/ac.h index 30206f8..f0f0371 100644 --- a/lib/samd51/samd51a/include/component/ac.h +++ b/lib/samd51/samd51a/include/component/ac.h @@ -1,598 +1,598 @@ -/** - * \file - * - * \brief Component description for AC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_AC_COMPONENT_ -#define _SAMD51_AC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR AC */ -/* ========================================================================== */ -/** \addtogroup SAMD51_AC Analog Comparators */ -/*@{*/ - -#define AC_U2501 -#define REV_AC 0x100 - -/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W 8) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Enable */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_CTRLA_OFFSET 0x00 /**< \brief (AC_CTRLA offset) Control A */ -#define AC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLA reset_value) Control A */ - -#define AC_CTRLA_SWRST_Pos 0 /**< \brief (AC_CTRLA) Software Reset */ -#define AC_CTRLA_SWRST (_U_(0x1) << AC_CTRLA_SWRST_Pos) -#define AC_CTRLA_ENABLE_Pos 1 /**< \brief (AC_CTRLA) Enable */ -#define AC_CTRLA_ENABLE (_U_(0x1) << AC_CTRLA_ENABLE_Pos) -#define AC_CTRLA_MASK _U_(0x03) /**< \brief (AC_CTRLA) MASK Register */ - -/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W 8) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t START0:1; /*!< bit: 0 Comparator 0 Start Comparison */ - uint8_t START1:1; /*!< bit: 1 Comparator 1 Start Comparison */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t START:2; /*!< bit: 0.. 1 Comparator x Start Comparison */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_CTRLB_OFFSET 0x01 /**< \brief (AC_CTRLB offset) Control B */ -#define AC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLB reset_value) Control B */ - -#define AC_CTRLB_START0_Pos 0 /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */ -#define AC_CTRLB_START0 (_U_(1) << AC_CTRLB_START0_Pos) -#define AC_CTRLB_START1_Pos 1 /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */ -#define AC_CTRLB_START1 (_U_(1) << AC_CTRLB_START1_Pos) -#define AC_CTRLB_START_Pos 0 /**< \brief (AC_CTRLB) Comparator x Start Comparison */ -#define AC_CTRLB_START_Msk (_U_(0x3) << AC_CTRLB_START_Pos) -#define AC_CTRLB_START(value) (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos)) -#define AC_CTRLB_MASK _U_(0x03) /**< \brief (AC_CTRLB) MASK Register */ - -/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t COMPEO0:1; /*!< bit: 0 Comparator 0 Event Output Enable */ - uint16_t COMPEO1:1; /*!< bit: 1 Comparator 1 Event Output Enable */ - uint16_t :2; /*!< bit: 2.. 3 Reserved */ - uint16_t WINEO0:1; /*!< bit: 4 Window 0 Event Output Enable */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t COMPEI0:1; /*!< bit: 8 Comparator 0 Event Input Enable */ - uint16_t COMPEI1:1; /*!< bit: 9 Comparator 1 Event Input Enable */ - uint16_t :2; /*!< bit: 10..11 Reserved */ - uint16_t INVEI0:1; /*!< bit: 12 Comparator 0 Input Event Invert Enable */ - uint16_t INVEI1:1; /*!< bit: 13 Comparator 1 Input Event Invert Enable */ - uint16_t :2; /*!< bit: 14..15 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint16_t COMPEO:2; /*!< bit: 0.. 1 Comparator x Event Output Enable */ - uint16_t :2; /*!< bit: 2.. 3 Reserved */ - uint16_t WINEO:1; /*!< bit: 4 Window x Event Output Enable */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t COMPEI:2; /*!< bit: 8.. 9 Comparator x Event Input Enable */ - uint16_t :2; /*!< bit: 10..11 Reserved */ - uint16_t INVEI:2; /*!< bit: 12..13 Comparator x Input Event Invert Enable */ - uint16_t :2; /*!< bit: 14..15 Reserved */ - } vec; /*!< Structure used for vec access */ - uint16_t reg; /*!< Type used for register access */ -} AC_EVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_EVCTRL_OFFSET 0x02 /**< \brief (AC_EVCTRL offset) Event Control */ -#define AC_EVCTRL_RESETVALUE _U_(0x0000) /**< \brief (AC_EVCTRL reset_value) Event Control */ - -#define AC_EVCTRL_COMPEO0_Pos 0 /**< \brief (AC_EVCTRL) Comparator 0 Event Output Enable */ -#define AC_EVCTRL_COMPEO0 (_U_(1) << AC_EVCTRL_COMPEO0_Pos) -#define AC_EVCTRL_COMPEO1_Pos 1 /**< \brief (AC_EVCTRL) Comparator 1 Event Output Enable */ -#define AC_EVCTRL_COMPEO1 (_U_(1) << AC_EVCTRL_COMPEO1_Pos) -#define AC_EVCTRL_COMPEO_Pos 0 /**< \brief (AC_EVCTRL) Comparator x Event Output Enable */ -#define AC_EVCTRL_COMPEO_Msk (_U_(0x3) << AC_EVCTRL_COMPEO_Pos) -#define AC_EVCTRL_COMPEO(value) (AC_EVCTRL_COMPEO_Msk & ((value) << AC_EVCTRL_COMPEO_Pos)) -#define AC_EVCTRL_WINEO0_Pos 4 /**< \brief (AC_EVCTRL) Window 0 Event Output Enable */ -#define AC_EVCTRL_WINEO0 (_U_(1) << AC_EVCTRL_WINEO0_Pos) -#define AC_EVCTRL_WINEO_Pos 4 /**< \brief (AC_EVCTRL) Window x Event Output Enable */ -#define AC_EVCTRL_WINEO_Msk (_U_(0x1) << AC_EVCTRL_WINEO_Pos) -#define AC_EVCTRL_WINEO(value) (AC_EVCTRL_WINEO_Msk & ((value) << AC_EVCTRL_WINEO_Pos)) -#define AC_EVCTRL_COMPEI0_Pos 8 /**< \brief (AC_EVCTRL) Comparator 0 Event Input Enable */ -#define AC_EVCTRL_COMPEI0 (_U_(1) << AC_EVCTRL_COMPEI0_Pos) -#define AC_EVCTRL_COMPEI1_Pos 9 /**< \brief (AC_EVCTRL) Comparator 1 Event Input Enable */ -#define AC_EVCTRL_COMPEI1 (_U_(1) << AC_EVCTRL_COMPEI1_Pos) -#define AC_EVCTRL_COMPEI_Pos 8 /**< \brief (AC_EVCTRL) Comparator x Event Input Enable */ -#define AC_EVCTRL_COMPEI_Msk (_U_(0x3) << AC_EVCTRL_COMPEI_Pos) -#define AC_EVCTRL_COMPEI(value) (AC_EVCTRL_COMPEI_Msk & ((value) << AC_EVCTRL_COMPEI_Pos)) -#define AC_EVCTRL_INVEI0_Pos 12 /**< \brief (AC_EVCTRL) Comparator 0 Input Event Invert Enable */ -#define AC_EVCTRL_INVEI0 (_U_(1) << AC_EVCTRL_INVEI0_Pos) -#define AC_EVCTRL_INVEI1_Pos 13 /**< \brief (AC_EVCTRL) Comparator 1 Input Event Invert Enable */ -#define AC_EVCTRL_INVEI1 (_U_(1) << AC_EVCTRL_INVEI1_Pos) -#define AC_EVCTRL_INVEI_Pos 12 /**< \brief (AC_EVCTRL) Comparator x Input Event Invert Enable */ -#define AC_EVCTRL_INVEI_Msk (_U_(0x3) << AC_EVCTRL_INVEI_Pos) -#define AC_EVCTRL_INVEI(value) (AC_EVCTRL_INVEI_Msk & ((value) << AC_EVCTRL_INVEI_Pos)) -#define AC_EVCTRL_MASK _U_(0x3313) /**< \brief (AC_EVCTRL) MASK Register */ - -/* -------- AC_INTENCLR : (AC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ - uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_INTENCLR_OFFSET 0x04 /**< \brief (AC_INTENCLR offset) Interrupt Enable Clear */ -#define AC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AC_INTENCLR reset_value) Interrupt Enable Clear */ - -#define AC_INTENCLR_COMP0_Pos 0 /**< \brief (AC_INTENCLR) Comparator 0 Interrupt Enable */ -#define AC_INTENCLR_COMP0 (_U_(1) << AC_INTENCLR_COMP0_Pos) -#define AC_INTENCLR_COMP1_Pos 1 /**< \brief (AC_INTENCLR) Comparator 1 Interrupt Enable */ -#define AC_INTENCLR_COMP1 (_U_(1) << AC_INTENCLR_COMP1_Pos) -#define AC_INTENCLR_COMP_Pos 0 /**< \brief (AC_INTENCLR) Comparator x Interrupt Enable */ -#define AC_INTENCLR_COMP_Msk (_U_(0x3) << AC_INTENCLR_COMP_Pos) -#define AC_INTENCLR_COMP(value) (AC_INTENCLR_COMP_Msk & ((value) << AC_INTENCLR_COMP_Pos)) -#define AC_INTENCLR_WIN0_Pos 4 /**< \brief (AC_INTENCLR) Window 0 Interrupt Enable */ -#define AC_INTENCLR_WIN0 (_U_(1) << AC_INTENCLR_WIN0_Pos) -#define AC_INTENCLR_WIN_Pos 4 /**< \brief (AC_INTENCLR) Window x Interrupt Enable */ -#define AC_INTENCLR_WIN_Msk (_U_(0x1) << AC_INTENCLR_WIN_Pos) -#define AC_INTENCLR_WIN(value) (AC_INTENCLR_WIN_Msk & ((value) << AC_INTENCLR_WIN_Pos)) -#define AC_INTENCLR_MASK _U_(0x13) /**< \brief (AC_INTENCLR) MASK Register */ - -/* -------- AC_INTENSET : (AC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ - uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ - uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_INTENSET_OFFSET 0x05 /**< \brief (AC_INTENSET offset) Interrupt Enable Set */ -#define AC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AC_INTENSET reset_value) Interrupt Enable Set */ - -#define AC_INTENSET_COMP0_Pos 0 /**< \brief (AC_INTENSET) Comparator 0 Interrupt Enable */ -#define AC_INTENSET_COMP0 (_U_(1) << AC_INTENSET_COMP0_Pos) -#define AC_INTENSET_COMP1_Pos 1 /**< \brief (AC_INTENSET) Comparator 1 Interrupt Enable */ -#define AC_INTENSET_COMP1 (_U_(1) << AC_INTENSET_COMP1_Pos) -#define AC_INTENSET_COMP_Pos 0 /**< \brief (AC_INTENSET) Comparator x Interrupt Enable */ -#define AC_INTENSET_COMP_Msk (_U_(0x3) << AC_INTENSET_COMP_Pos) -#define AC_INTENSET_COMP(value) (AC_INTENSET_COMP_Msk & ((value) << AC_INTENSET_COMP_Pos)) -#define AC_INTENSET_WIN0_Pos 4 /**< \brief (AC_INTENSET) Window 0 Interrupt Enable */ -#define AC_INTENSET_WIN0 (_U_(1) << AC_INTENSET_WIN0_Pos) -#define AC_INTENSET_WIN_Pos 4 /**< \brief (AC_INTENSET) Window x Interrupt Enable */ -#define AC_INTENSET_WIN_Msk (_U_(0x1) << AC_INTENSET_WIN_Pos) -#define AC_INTENSET_WIN(value) (AC_INTENSET_WIN_Msk & ((value) << AC_INTENSET_WIN_Pos)) -#define AC_INTENSET_MASK _U_(0x13) /**< \brief (AC_INTENSET) MASK Register */ - -/* -------- AC_INTFLAG : (AC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t COMP0:1; /*!< bit: 0 Comparator 0 */ - __I uint8_t COMP1:1; /*!< bit: 1 Comparator 1 */ - __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ - __I uint8_t WIN0:1; /*!< bit: 4 Window 0 */ - __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - __I uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x */ - __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ - __I uint8_t WIN:1; /*!< bit: 4 Window x */ - __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_INTFLAG_OFFSET 0x06 /**< \brief (AC_INTFLAG offset) Interrupt Flag Status and Clear */ -#define AC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AC_INTFLAG reset_value) Interrupt Flag Status and Clear */ - -#define AC_INTFLAG_COMP0_Pos 0 /**< \brief (AC_INTFLAG) Comparator 0 */ -#define AC_INTFLAG_COMP0 (_U_(1) << AC_INTFLAG_COMP0_Pos) -#define AC_INTFLAG_COMP1_Pos 1 /**< \brief (AC_INTFLAG) Comparator 1 */ -#define AC_INTFLAG_COMP1 (_U_(1) << AC_INTFLAG_COMP1_Pos) -#define AC_INTFLAG_COMP_Pos 0 /**< \brief (AC_INTFLAG) Comparator x */ -#define AC_INTFLAG_COMP_Msk (_U_(0x3) << AC_INTFLAG_COMP_Pos) -#define AC_INTFLAG_COMP(value) (AC_INTFLAG_COMP_Msk & ((value) << AC_INTFLAG_COMP_Pos)) -#define AC_INTFLAG_WIN0_Pos 4 /**< \brief (AC_INTFLAG) Window 0 */ -#define AC_INTFLAG_WIN0 (_U_(1) << AC_INTFLAG_WIN0_Pos) -#define AC_INTFLAG_WIN_Pos 4 /**< \brief (AC_INTFLAG) Window x */ -#define AC_INTFLAG_WIN_Msk (_U_(0x1) << AC_INTFLAG_WIN_Pos) -#define AC_INTFLAG_WIN(value) (AC_INTFLAG_WIN_Msk & ((value) << AC_INTFLAG_WIN_Pos)) -#define AC_INTFLAG_MASK _U_(0x13) /**< \brief (AC_INTFLAG) MASK Register */ - -/* -------- AC_STATUSA : (AC Offset: 0x07) (R/ 8) Status A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ - uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ - uint8_t :2; /*!< bit: 2.. 3 Reserved */ - uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_STATUSA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_STATUSA_OFFSET 0x07 /**< \brief (AC_STATUSA offset) Status A */ -#define AC_STATUSA_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSA reset_value) Status A */ - -#define AC_STATUSA_STATE0_Pos 0 /**< \brief (AC_STATUSA) Comparator 0 Current State */ -#define AC_STATUSA_STATE0 (_U_(1) << AC_STATUSA_STATE0_Pos) -#define AC_STATUSA_STATE1_Pos 1 /**< \brief (AC_STATUSA) Comparator 1 Current State */ -#define AC_STATUSA_STATE1 (_U_(1) << AC_STATUSA_STATE1_Pos) -#define AC_STATUSA_STATE_Pos 0 /**< \brief (AC_STATUSA) Comparator x Current State */ -#define AC_STATUSA_STATE_Msk (_U_(0x3) << AC_STATUSA_STATE_Pos) -#define AC_STATUSA_STATE(value) (AC_STATUSA_STATE_Msk & ((value) << AC_STATUSA_STATE_Pos)) -#define AC_STATUSA_WSTATE0_Pos 4 /**< \brief (AC_STATUSA) Window 0 Current State */ -#define AC_STATUSA_WSTATE0_Msk (_U_(0x3) << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_WSTATE0(value) (AC_STATUSA_WSTATE0_Msk & ((value) << AC_STATUSA_WSTATE0_Pos)) -#define AC_STATUSA_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSA) Signal is above window */ -#define AC_STATUSA_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSA) Signal is inside window */ -#define AC_STATUSA_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSA) Signal is below window */ -#define AC_STATUSA_WSTATE0_ABOVE (AC_STATUSA_WSTATE0_ABOVE_Val << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_WSTATE0_INSIDE (AC_STATUSA_WSTATE0_INSIDE_Val << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_WSTATE0_BELOW (AC_STATUSA_WSTATE0_BELOW_Val << AC_STATUSA_WSTATE0_Pos) -#define AC_STATUSA_MASK _U_(0x33) /**< \brief (AC_STATUSA) MASK Register */ - -/* -------- AC_STATUSB : (AC Offset: 0x08) (R/ 8) Status B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t READY0:1; /*!< bit: 0 Comparator 0 Ready */ - uint8_t READY1:1; /*!< bit: 1 Comparator 1 Ready */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t READY:2; /*!< bit: 0.. 1 Comparator x Ready */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} AC_STATUSB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_STATUSB_OFFSET 0x08 /**< \brief (AC_STATUSB offset) Status B */ -#define AC_STATUSB_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSB reset_value) Status B */ - -#define AC_STATUSB_READY0_Pos 0 /**< \brief (AC_STATUSB) Comparator 0 Ready */ -#define AC_STATUSB_READY0 (_U_(1) << AC_STATUSB_READY0_Pos) -#define AC_STATUSB_READY1_Pos 1 /**< \brief (AC_STATUSB) Comparator 1 Ready */ -#define AC_STATUSB_READY1 (_U_(1) << AC_STATUSB_READY1_Pos) -#define AC_STATUSB_READY_Pos 0 /**< \brief (AC_STATUSB) Comparator x Ready */ -#define AC_STATUSB_READY_Msk (_U_(0x3) << AC_STATUSB_READY_Pos) -#define AC_STATUSB_READY(value) (AC_STATUSB_READY_Msk & ((value) << AC_STATUSB_READY_Pos)) -#define AC_STATUSB_MASK _U_(0x03) /**< \brief (AC_STATUSB) MASK Register */ - -/* -------- AC_DBGCTRL : (AC Offset: 0x09) (R/W 8) Debug Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_DBGCTRL_OFFSET 0x09 /**< \brief (AC_DBGCTRL offset) Debug Control */ -#define AC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_DBGCTRL reset_value) Debug Control */ - -#define AC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (AC_DBGCTRL) Debug Run */ -#define AC_DBGCTRL_DBGRUN (_U_(0x1) << AC_DBGCTRL_DBGRUN_Pos) -#define AC_DBGCTRL_MASK _U_(0x01) /**< \brief (AC_DBGCTRL) MASK Register */ - -/* -------- AC_WINCTRL : (AC Offset: 0x0A) (R/W 8) Window Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t WEN0:1; /*!< bit: 0 Window 0 Mode Enable */ - uint8_t WINTSEL0:2; /*!< bit: 1.. 2 Window 0 Interrupt Selection */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_WINCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_WINCTRL_OFFSET 0x0A /**< \brief (AC_WINCTRL offset) Window Control */ -#define AC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_WINCTRL reset_value) Window Control */ - -#define AC_WINCTRL_WEN0_Pos 0 /**< \brief (AC_WINCTRL) Window 0 Mode Enable */ -#define AC_WINCTRL_WEN0 (_U_(0x1) << AC_WINCTRL_WEN0_Pos) -#define AC_WINCTRL_WINTSEL0_Pos 1 /**< \brief (AC_WINCTRL) Window 0 Interrupt Selection */ -#define AC_WINCTRL_WINTSEL0_Msk (_U_(0x3) << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0(value) (AC_WINCTRL_WINTSEL0_Msk & ((value) << AC_WINCTRL_WINTSEL0_Pos)) -#define AC_WINCTRL_WINTSEL0_ABOVE_Val _U_(0x0) /**< \brief (AC_WINCTRL) Interrupt on signal above window */ -#define AC_WINCTRL_WINTSEL0_INSIDE_Val _U_(0x1) /**< \brief (AC_WINCTRL) Interrupt on signal inside window */ -#define AC_WINCTRL_WINTSEL0_BELOW_Val _U_(0x2) /**< \brief (AC_WINCTRL) Interrupt on signal below window */ -#define AC_WINCTRL_WINTSEL0_OUTSIDE_Val _U_(0x3) /**< \brief (AC_WINCTRL) Interrupt on signal outside window */ -#define AC_WINCTRL_WINTSEL0_ABOVE (AC_WINCTRL_WINTSEL0_ABOVE_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0_INSIDE (AC_WINCTRL_WINTSEL0_INSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0_BELOW (AC_WINCTRL_WINTSEL0_BELOW_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_WINTSEL0_OUTSIDE (AC_WINCTRL_WINTSEL0_OUTSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) -#define AC_WINCTRL_MASK _U_(0x07) /**< \brief (AC_WINCTRL) MASK Register */ - -/* -------- AC_SCALER : (AC Offset: 0x0C) (R/W 8) Scaler n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t VALUE:6; /*!< bit: 0.. 5 Scaler Value */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AC_SCALER_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_SCALER_OFFSET 0x0C /**< \brief (AC_SCALER offset) Scaler n */ -#define AC_SCALER_RESETVALUE _U_(0x00) /**< \brief (AC_SCALER reset_value) Scaler n */ - -#define AC_SCALER_VALUE_Pos 0 /**< \brief (AC_SCALER) Scaler Value */ -#define AC_SCALER_VALUE_Msk (_U_(0x3F) << AC_SCALER_VALUE_Pos) -#define AC_SCALER_VALUE(value) (AC_SCALER_VALUE_Msk & ((value) << AC_SCALER_VALUE_Pos)) -#define AC_SCALER_MASK _U_(0x3F) /**< \brief (AC_SCALER) MASK Register */ - -/* -------- AC_COMPCTRL : (AC Offset: 0x10) (R/W 32) Comparator Control n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t :1; /*!< bit: 0 Reserved */ - uint32_t ENABLE:1; /*!< bit: 1 Enable */ - uint32_t SINGLE:1; /*!< bit: 2 Single-Shot Mode */ - uint32_t INTSEL:2; /*!< bit: 3.. 4 Interrupt Selection */ - uint32_t :1; /*!< bit: 5 Reserved */ - uint32_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ - uint32_t :1; /*!< bit: 7 Reserved */ - uint32_t MUXNEG:3; /*!< bit: 8..10 Negative Input Mux Selection */ - uint32_t :1; /*!< bit: 11 Reserved */ - uint32_t MUXPOS:3; /*!< bit: 12..14 Positive Input Mux Selection */ - uint32_t SWAP:1; /*!< bit: 15 Swap Inputs and Invert */ - uint32_t SPEED:2; /*!< bit: 16..17 Speed Selection */ - uint32_t :1; /*!< bit: 18 Reserved */ - uint32_t HYSTEN:1; /*!< bit: 19 Hysteresis Enable */ - uint32_t HYST:2; /*!< bit: 20..21 Hysteresis Level */ - uint32_t :2; /*!< bit: 22..23 Reserved */ - uint32_t FLEN:3; /*!< bit: 24..26 Filter Length */ - uint32_t :1; /*!< bit: 27 Reserved */ - uint32_t OUT:2; /*!< bit: 28..29 Output */ - uint32_t :2; /*!< bit: 30..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} AC_COMPCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_COMPCTRL_OFFSET 0x10 /**< \brief (AC_COMPCTRL offset) Comparator Control n */ -#define AC_COMPCTRL_RESETVALUE _U_(0x00000000) /**< \brief (AC_COMPCTRL reset_value) Comparator Control n */ - -#define AC_COMPCTRL_ENABLE_Pos 1 /**< \brief (AC_COMPCTRL) Enable */ -#define AC_COMPCTRL_ENABLE (_U_(0x1) << AC_COMPCTRL_ENABLE_Pos) -#define AC_COMPCTRL_SINGLE_Pos 2 /**< \brief (AC_COMPCTRL) Single-Shot Mode */ -#define AC_COMPCTRL_SINGLE (_U_(0x1) << AC_COMPCTRL_SINGLE_Pos) -#define AC_COMPCTRL_INTSEL_Pos 3 /**< \brief (AC_COMPCTRL) Interrupt Selection */ -#define AC_COMPCTRL_INTSEL_Msk (_U_(0x3) << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL(value) (AC_COMPCTRL_INTSEL_Msk & ((value) << AC_COMPCTRL_INTSEL_Pos)) -#define AC_COMPCTRL_INTSEL_TOGGLE_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Interrupt on comparator output toggle */ -#define AC_COMPCTRL_INTSEL_RISING_Val _U_(0x1) /**< \brief (AC_COMPCTRL) Interrupt on comparator output rising */ -#define AC_COMPCTRL_INTSEL_FALLING_Val _U_(0x2) /**< \brief (AC_COMPCTRL) Interrupt on comparator output falling */ -#define AC_COMPCTRL_INTSEL_EOC_Val _U_(0x3) /**< \brief (AC_COMPCTRL) Interrupt on end of comparison (single-shot mode only) */ -#define AC_COMPCTRL_INTSEL_TOGGLE (AC_COMPCTRL_INTSEL_TOGGLE_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL_RISING (AC_COMPCTRL_INTSEL_RISING_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL_FALLING (AC_COMPCTRL_INTSEL_FALLING_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_INTSEL_EOC (AC_COMPCTRL_INTSEL_EOC_Val << AC_COMPCTRL_INTSEL_Pos) -#define AC_COMPCTRL_RUNSTDBY_Pos 6 /**< \brief (AC_COMPCTRL) Run in Standby */ -#define AC_COMPCTRL_RUNSTDBY (_U_(0x1) << AC_COMPCTRL_RUNSTDBY_Pos) -#define AC_COMPCTRL_MUXNEG_Pos 8 /**< \brief (AC_COMPCTRL) Negative Input Mux Selection */ -#define AC_COMPCTRL_MUXNEG_Msk (_U_(0x7) << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG(value) (AC_COMPCTRL_MUXNEG_Msk & ((value) << AC_COMPCTRL_MUXNEG_Pos)) -#define AC_COMPCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ -#define AC_COMPCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ -#define AC_COMPCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ -#define AC_COMPCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ -#define AC_COMPCTRL_MUXNEG_GND_Val _U_(0x4) /**< \brief (AC_COMPCTRL) Ground */ -#define AC_COMPCTRL_MUXNEG_VSCALE_Val _U_(0x5) /**< \brief (AC_COMPCTRL) VDD scaler */ -#define AC_COMPCTRL_MUXNEG_BANDGAP_Val _U_(0x6) /**< \brief (AC_COMPCTRL) Internal bandgap voltage */ -#define AC_COMPCTRL_MUXNEG_DAC_Val _U_(0x7) /**< \brief (AC_COMPCTRL) DAC output */ -#define AC_COMPCTRL_MUXNEG_PIN0 (AC_COMPCTRL_MUXNEG_PIN0_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_PIN1 (AC_COMPCTRL_MUXNEG_PIN1_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_PIN2 (AC_COMPCTRL_MUXNEG_PIN2_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_PIN3 (AC_COMPCTRL_MUXNEG_PIN3_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_GND (AC_COMPCTRL_MUXNEG_GND_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_VSCALE (AC_COMPCTRL_MUXNEG_VSCALE_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_BANDGAP (AC_COMPCTRL_MUXNEG_BANDGAP_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXNEG_DAC (AC_COMPCTRL_MUXNEG_DAC_Val << AC_COMPCTRL_MUXNEG_Pos) -#define AC_COMPCTRL_MUXPOS_Pos 12 /**< \brief (AC_COMPCTRL) Positive Input Mux Selection */ -#define AC_COMPCTRL_MUXPOS_Msk (_U_(0x7) << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS(value) (AC_COMPCTRL_MUXPOS_Msk & ((value) << AC_COMPCTRL_MUXPOS_Pos)) -#define AC_COMPCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ -#define AC_COMPCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ -#define AC_COMPCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ -#define AC_COMPCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ -#define AC_COMPCTRL_MUXPOS_VSCALE_Val _U_(0x4) /**< \brief (AC_COMPCTRL) VDD Scaler */ -#define AC_COMPCTRL_MUXPOS_PIN0 (AC_COMPCTRL_MUXPOS_PIN0_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_PIN1 (AC_COMPCTRL_MUXPOS_PIN1_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_PIN2 (AC_COMPCTRL_MUXPOS_PIN2_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_PIN3 (AC_COMPCTRL_MUXPOS_PIN3_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_MUXPOS_VSCALE (AC_COMPCTRL_MUXPOS_VSCALE_Val << AC_COMPCTRL_MUXPOS_Pos) -#define AC_COMPCTRL_SWAP_Pos 15 /**< \brief (AC_COMPCTRL) Swap Inputs and Invert */ -#define AC_COMPCTRL_SWAP (_U_(0x1) << AC_COMPCTRL_SWAP_Pos) -#define AC_COMPCTRL_SPEED_Pos 16 /**< \brief (AC_COMPCTRL) Speed Selection */ -#define AC_COMPCTRL_SPEED_Msk (_U_(0x3) << AC_COMPCTRL_SPEED_Pos) -#define AC_COMPCTRL_SPEED(value) (AC_COMPCTRL_SPEED_Msk & ((value) << AC_COMPCTRL_SPEED_Pos)) -#define AC_COMPCTRL_SPEED_HIGH_Val _U_(0x3) /**< \brief (AC_COMPCTRL) High speed */ -#define AC_COMPCTRL_SPEED_HIGH (AC_COMPCTRL_SPEED_HIGH_Val << AC_COMPCTRL_SPEED_Pos) -#define AC_COMPCTRL_HYSTEN_Pos 19 /**< \brief (AC_COMPCTRL) Hysteresis Enable */ -#define AC_COMPCTRL_HYSTEN (_U_(0x1) << AC_COMPCTRL_HYSTEN_Pos) -#define AC_COMPCTRL_HYST_Pos 20 /**< \brief (AC_COMPCTRL) Hysteresis Level */ -#define AC_COMPCTRL_HYST_Msk (_U_(0x3) << AC_COMPCTRL_HYST_Pos) -#define AC_COMPCTRL_HYST(value) (AC_COMPCTRL_HYST_Msk & ((value) << AC_COMPCTRL_HYST_Pos)) -#define AC_COMPCTRL_HYST_HYST50_Val _U_(0x0) /**< \brief (AC_COMPCTRL) 50mV */ -#define AC_COMPCTRL_HYST_HYST100_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 100mV */ -#define AC_COMPCTRL_HYST_HYST150_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 150mV */ -#define AC_COMPCTRL_HYST_HYST50 (AC_COMPCTRL_HYST_HYST50_Val << AC_COMPCTRL_HYST_Pos) -#define AC_COMPCTRL_HYST_HYST100 (AC_COMPCTRL_HYST_HYST100_Val << AC_COMPCTRL_HYST_Pos) -#define AC_COMPCTRL_HYST_HYST150 (AC_COMPCTRL_HYST_HYST150_Val << AC_COMPCTRL_HYST_Pos) -#define AC_COMPCTRL_FLEN_Pos 24 /**< \brief (AC_COMPCTRL) Filter Length */ -#define AC_COMPCTRL_FLEN_Msk (_U_(0x7) << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_FLEN(value) (AC_COMPCTRL_FLEN_Msk & ((value) << AC_COMPCTRL_FLEN_Pos)) -#define AC_COMPCTRL_FLEN_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) No filtering */ -#define AC_COMPCTRL_FLEN_MAJ3_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 3-bit majority function (2 of 3) */ -#define AC_COMPCTRL_FLEN_MAJ5_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 5-bit majority function (3 of 5) */ -#define AC_COMPCTRL_FLEN_OFF (AC_COMPCTRL_FLEN_OFF_Val << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_FLEN_MAJ3 (AC_COMPCTRL_FLEN_MAJ3_Val << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_FLEN_MAJ5 (AC_COMPCTRL_FLEN_MAJ5_Val << AC_COMPCTRL_FLEN_Pos) -#define AC_COMPCTRL_OUT_Pos 28 /**< \brief (AC_COMPCTRL) Output */ -#define AC_COMPCTRL_OUT_Msk (_U_(0x3) << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_OUT(value) (AC_COMPCTRL_OUT_Msk & ((value) << AC_COMPCTRL_OUT_Pos)) -#define AC_COMPCTRL_OUT_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) The output of COMPn is not routed to the COMPn I/O port */ -#define AC_COMPCTRL_OUT_ASYNC_Val _U_(0x1) /**< \brief (AC_COMPCTRL) The asynchronous output of COMPn is routed to the COMPn I/O port */ -#define AC_COMPCTRL_OUT_SYNC_Val _U_(0x2) /**< \brief (AC_COMPCTRL) The synchronous output (including filtering) of COMPn is routed to the COMPn I/O port */ -#define AC_COMPCTRL_OUT_OFF (AC_COMPCTRL_OUT_OFF_Val << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_OUT_ASYNC (AC_COMPCTRL_OUT_ASYNC_Val << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_OUT_SYNC (AC_COMPCTRL_OUT_SYNC_Val << AC_COMPCTRL_OUT_Pos) -#define AC_COMPCTRL_MASK _U_(0x373BF75E) /**< \brief (AC_COMPCTRL) MASK Register */ - -/* -------- AC_SYNCBUSY : (AC Offset: 0x20) (R/ 32) Synchronization Busy -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWRST:1; /*!< bit: 0 Software Reset Synchronization Busy */ - uint32_t ENABLE:1; /*!< bit: 1 Enable Synchronization Busy */ - uint32_t WINCTRL:1; /*!< bit: 2 WINCTRL Synchronization Busy */ - uint32_t COMPCTRL0:1; /*!< bit: 3 COMPCTRL 0 Synchronization Busy */ - uint32_t COMPCTRL1:1; /*!< bit: 4 COMPCTRL 1 Synchronization Busy */ - uint32_t :27; /*!< bit: 5..31 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t :3; /*!< bit: 0.. 2 Reserved */ - uint32_t COMPCTRL:2; /*!< bit: 3.. 4 COMPCTRL x Synchronization Busy */ - uint32_t :27; /*!< bit: 5..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} AC_SYNCBUSY_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_SYNCBUSY_OFFSET 0x20 /**< \brief (AC_SYNCBUSY offset) Synchronization Busy */ -#define AC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (AC_SYNCBUSY reset_value) Synchronization Busy */ - -#define AC_SYNCBUSY_SWRST_Pos 0 /**< \brief (AC_SYNCBUSY) Software Reset Synchronization Busy */ -#define AC_SYNCBUSY_SWRST (_U_(0x1) << AC_SYNCBUSY_SWRST_Pos) -#define AC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (AC_SYNCBUSY) Enable Synchronization Busy */ -#define AC_SYNCBUSY_ENABLE (_U_(0x1) << AC_SYNCBUSY_ENABLE_Pos) -#define AC_SYNCBUSY_WINCTRL_Pos 2 /**< \brief (AC_SYNCBUSY) WINCTRL Synchronization Busy */ -#define AC_SYNCBUSY_WINCTRL (_U_(0x1) << AC_SYNCBUSY_WINCTRL_Pos) -#define AC_SYNCBUSY_COMPCTRL0_Pos 3 /**< \brief (AC_SYNCBUSY) COMPCTRL 0 Synchronization Busy */ -#define AC_SYNCBUSY_COMPCTRL0 (_U_(1) << AC_SYNCBUSY_COMPCTRL0_Pos) -#define AC_SYNCBUSY_COMPCTRL1_Pos 4 /**< \brief (AC_SYNCBUSY) COMPCTRL 1 Synchronization Busy */ -#define AC_SYNCBUSY_COMPCTRL1 (_U_(1) << AC_SYNCBUSY_COMPCTRL1_Pos) -#define AC_SYNCBUSY_COMPCTRL_Pos 3 /**< \brief (AC_SYNCBUSY) COMPCTRL x Synchronization Busy */ -#define AC_SYNCBUSY_COMPCTRL_Msk (_U_(0x3) << AC_SYNCBUSY_COMPCTRL_Pos) -#define AC_SYNCBUSY_COMPCTRL(value) (AC_SYNCBUSY_COMPCTRL_Msk & ((value) << AC_SYNCBUSY_COMPCTRL_Pos)) -#define AC_SYNCBUSY_MASK _U_(0x0000001F) /**< \brief (AC_SYNCBUSY) MASK Register */ - -/* -------- AC_CALIB : (AC Offset: 0x24) (R/W 16) Calibration -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t BIAS0:2; /*!< bit: 0.. 1 COMP0/1 Bias Scaling */ - uint16_t :14; /*!< bit: 2..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} AC_CALIB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AC_CALIB_OFFSET 0x24 /**< \brief (AC_CALIB offset) Calibration */ -#define AC_CALIB_RESETVALUE _U_(0x0101) /**< \brief (AC_CALIB reset_value) Calibration */ - -#define AC_CALIB_BIAS0_Pos 0 /**< \brief (AC_CALIB) COMP0/1 Bias Scaling */ -#define AC_CALIB_BIAS0_Msk (_U_(0x3) << AC_CALIB_BIAS0_Pos) -#define AC_CALIB_BIAS0(value) (AC_CALIB_BIAS0_Msk & ((value) << AC_CALIB_BIAS0_Pos)) -#define AC_CALIB_MASK _U_(0x0003) /**< \brief (AC_CALIB) MASK Register */ - -/** \brief AC hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO AC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ - __O AC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 ( /W 8) Control B */ - __IO AC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 16) Event Control */ - __IO AC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ - __IO AC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ - __IO AC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ - __I AC_STATUSA_Type STATUSA; /**< \brief Offset: 0x07 (R/ 8) Status A */ - __I AC_STATUSB_Type STATUSB; /**< \brief Offset: 0x08 (R/ 8) Status B */ - __IO AC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x09 (R/W 8) Debug Control */ - __IO AC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x0A (R/W 8) Window Control */ - RoReg8 Reserved1[0x1]; - __IO AC_SCALER_Type SCALER[2]; /**< \brief Offset: 0x0C (R/W 8) Scaler n */ - RoReg8 Reserved2[0x2]; - __IO AC_COMPCTRL_Type COMPCTRL[2]; /**< \brief Offset: 0x10 (R/W 32) Comparator Control n */ - RoReg8 Reserved3[0x8]; - __I AC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x20 (R/ 32) Synchronization Busy */ - __IO AC_CALIB_Type CALIB; /**< \brief Offset: 0x24 (R/W 16) Calibration */ -} Ac; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD51_AC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for AC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_AC_COMPONENT_ +#define _SAMD51_AC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR AC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_AC Analog Comparators */ +/*@{*/ + +#define AC_U2501 +#define REV_AC 0x100 + +/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CTRLA_OFFSET 0x00 /**< \brief (AC_CTRLA offset) Control A */ +#define AC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLA reset_value) Control A */ + +#define AC_CTRLA_SWRST_Pos 0 /**< \brief (AC_CTRLA) Software Reset */ +#define AC_CTRLA_SWRST (_U_(0x1) << AC_CTRLA_SWRST_Pos) +#define AC_CTRLA_ENABLE_Pos 1 /**< \brief (AC_CTRLA) Enable */ +#define AC_CTRLA_ENABLE (_U_(0x1) << AC_CTRLA_ENABLE_Pos) +#define AC_CTRLA_MASK _U_(0x03) /**< \brief (AC_CTRLA) MASK Register */ + +/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t START0:1; /*!< bit: 0 Comparator 0 Start Comparison */ + uint8_t START1:1; /*!< bit: 1 Comparator 1 Start Comparison */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t START:2; /*!< bit: 0.. 1 Comparator x Start Comparison */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CTRLB_OFFSET 0x01 /**< \brief (AC_CTRLB offset) Control B */ +#define AC_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AC_CTRLB reset_value) Control B */ + +#define AC_CTRLB_START0_Pos 0 /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */ +#define AC_CTRLB_START0 (_U_(1) << AC_CTRLB_START0_Pos) +#define AC_CTRLB_START1_Pos 1 /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */ +#define AC_CTRLB_START1 (_U_(1) << AC_CTRLB_START1_Pos) +#define AC_CTRLB_START_Pos 0 /**< \brief (AC_CTRLB) Comparator x Start Comparison */ +#define AC_CTRLB_START_Msk (_U_(0x3) << AC_CTRLB_START_Pos) +#define AC_CTRLB_START(value) (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos)) +#define AC_CTRLB_MASK _U_(0x03) /**< \brief (AC_CTRLB) MASK Register */ + +/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t COMPEO0:1; /*!< bit: 0 Comparator 0 Event Output Enable */ + uint16_t COMPEO1:1; /*!< bit: 1 Comparator 1 Event Output Enable */ + uint16_t :2; /*!< bit: 2.. 3 Reserved */ + uint16_t WINEO0:1; /*!< bit: 4 Window 0 Event Output Enable */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t COMPEI0:1; /*!< bit: 8 Comparator 0 Event Input Enable */ + uint16_t COMPEI1:1; /*!< bit: 9 Comparator 1 Event Input Enable */ + uint16_t :2; /*!< bit: 10..11 Reserved */ + uint16_t INVEI0:1; /*!< bit: 12 Comparator 0 Input Event Invert Enable */ + uint16_t INVEI1:1; /*!< bit: 13 Comparator 1 Input Event Invert Enable */ + uint16_t :2; /*!< bit: 14..15 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint16_t COMPEO:2; /*!< bit: 0.. 1 Comparator x Event Output Enable */ + uint16_t :2; /*!< bit: 2.. 3 Reserved */ + uint16_t WINEO:1; /*!< bit: 4 Window x Event Output Enable */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t COMPEI:2; /*!< bit: 8.. 9 Comparator x Event Input Enable */ + uint16_t :2; /*!< bit: 10..11 Reserved */ + uint16_t INVEI:2; /*!< bit: 12..13 Comparator x Input Event Invert Enable */ + uint16_t :2; /*!< bit: 14..15 Reserved */ + } vec; /*!< Structure used for vec access */ + uint16_t reg; /*!< Type used for register access */ +} AC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_EVCTRL_OFFSET 0x02 /**< \brief (AC_EVCTRL offset) Event Control */ +#define AC_EVCTRL_RESETVALUE _U_(0x0000) /**< \brief (AC_EVCTRL reset_value) Event Control */ + +#define AC_EVCTRL_COMPEO0_Pos 0 /**< \brief (AC_EVCTRL) Comparator 0 Event Output Enable */ +#define AC_EVCTRL_COMPEO0 (_U_(1) << AC_EVCTRL_COMPEO0_Pos) +#define AC_EVCTRL_COMPEO1_Pos 1 /**< \brief (AC_EVCTRL) Comparator 1 Event Output Enable */ +#define AC_EVCTRL_COMPEO1 (_U_(1) << AC_EVCTRL_COMPEO1_Pos) +#define AC_EVCTRL_COMPEO_Pos 0 /**< \brief (AC_EVCTRL) Comparator x Event Output Enable */ +#define AC_EVCTRL_COMPEO_Msk (_U_(0x3) << AC_EVCTRL_COMPEO_Pos) +#define AC_EVCTRL_COMPEO(value) (AC_EVCTRL_COMPEO_Msk & ((value) << AC_EVCTRL_COMPEO_Pos)) +#define AC_EVCTRL_WINEO0_Pos 4 /**< \brief (AC_EVCTRL) Window 0 Event Output Enable */ +#define AC_EVCTRL_WINEO0 (_U_(1) << AC_EVCTRL_WINEO0_Pos) +#define AC_EVCTRL_WINEO_Pos 4 /**< \brief (AC_EVCTRL) Window x Event Output Enable */ +#define AC_EVCTRL_WINEO_Msk (_U_(0x1) << AC_EVCTRL_WINEO_Pos) +#define AC_EVCTRL_WINEO(value) (AC_EVCTRL_WINEO_Msk & ((value) << AC_EVCTRL_WINEO_Pos)) +#define AC_EVCTRL_COMPEI0_Pos 8 /**< \brief (AC_EVCTRL) Comparator 0 Event Input Enable */ +#define AC_EVCTRL_COMPEI0 (_U_(1) << AC_EVCTRL_COMPEI0_Pos) +#define AC_EVCTRL_COMPEI1_Pos 9 /**< \brief (AC_EVCTRL) Comparator 1 Event Input Enable */ +#define AC_EVCTRL_COMPEI1 (_U_(1) << AC_EVCTRL_COMPEI1_Pos) +#define AC_EVCTRL_COMPEI_Pos 8 /**< \brief (AC_EVCTRL) Comparator x Event Input Enable */ +#define AC_EVCTRL_COMPEI_Msk (_U_(0x3) << AC_EVCTRL_COMPEI_Pos) +#define AC_EVCTRL_COMPEI(value) (AC_EVCTRL_COMPEI_Msk & ((value) << AC_EVCTRL_COMPEI_Pos)) +#define AC_EVCTRL_INVEI0_Pos 12 /**< \brief (AC_EVCTRL) Comparator 0 Input Event Invert Enable */ +#define AC_EVCTRL_INVEI0 (_U_(1) << AC_EVCTRL_INVEI0_Pos) +#define AC_EVCTRL_INVEI1_Pos 13 /**< \brief (AC_EVCTRL) Comparator 1 Input Event Invert Enable */ +#define AC_EVCTRL_INVEI1 (_U_(1) << AC_EVCTRL_INVEI1_Pos) +#define AC_EVCTRL_INVEI_Pos 12 /**< \brief (AC_EVCTRL) Comparator x Input Event Invert Enable */ +#define AC_EVCTRL_INVEI_Msk (_U_(0x3) << AC_EVCTRL_INVEI_Pos) +#define AC_EVCTRL_INVEI(value) (AC_EVCTRL_INVEI_Msk & ((value) << AC_EVCTRL_INVEI_Pos)) +#define AC_EVCTRL_MASK _U_(0x3313) /**< \brief (AC_EVCTRL) MASK Register */ + +/* -------- AC_INTENCLR : (AC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ + uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTENCLR_OFFSET 0x04 /**< \brief (AC_INTENCLR offset) Interrupt Enable Clear */ +#define AC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define AC_INTENCLR_COMP0_Pos 0 /**< \brief (AC_INTENCLR) Comparator 0 Interrupt Enable */ +#define AC_INTENCLR_COMP0 (_U_(1) << AC_INTENCLR_COMP0_Pos) +#define AC_INTENCLR_COMP1_Pos 1 /**< \brief (AC_INTENCLR) Comparator 1 Interrupt Enable */ +#define AC_INTENCLR_COMP1 (_U_(1) << AC_INTENCLR_COMP1_Pos) +#define AC_INTENCLR_COMP_Pos 0 /**< \brief (AC_INTENCLR) Comparator x Interrupt Enable */ +#define AC_INTENCLR_COMP_Msk (_U_(0x3) << AC_INTENCLR_COMP_Pos) +#define AC_INTENCLR_COMP(value) (AC_INTENCLR_COMP_Msk & ((value) << AC_INTENCLR_COMP_Pos)) +#define AC_INTENCLR_WIN0_Pos 4 /**< \brief (AC_INTENCLR) Window 0 Interrupt Enable */ +#define AC_INTENCLR_WIN0 (_U_(1) << AC_INTENCLR_WIN0_Pos) +#define AC_INTENCLR_WIN_Pos 4 /**< \brief (AC_INTENCLR) Window x Interrupt Enable */ +#define AC_INTENCLR_WIN_Msk (_U_(0x1) << AC_INTENCLR_WIN_Pos) +#define AC_INTENCLR_WIN(value) (AC_INTENCLR_WIN_Msk & ((value) << AC_INTENCLR_WIN_Pos)) +#define AC_INTENCLR_MASK _U_(0x13) /**< \brief (AC_INTENCLR) MASK Register */ + +/* -------- AC_INTENSET : (AC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */ + uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */ + uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTENSET_OFFSET 0x05 /**< \brief (AC_INTENSET offset) Interrupt Enable Set */ +#define AC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AC_INTENSET reset_value) Interrupt Enable Set */ + +#define AC_INTENSET_COMP0_Pos 0 /**< \brief (AC_INTENSET) Comparator 0 Interrupt Enable */ +#define AC_INTENSET_COMP0 (_U_(1) << AC_INTENSET_COMP0_Pos) +#define AC_INTENSET_COMP1_Pos 1 /**< \brief (AC_INTENSET) Comparator 1 Interrupt Enable */ +#define AC_INTENSET_COMP1 (_U_(1) << AC_INTENSET_COMP1_Pos) +#define AC_INTENSET_COMP_Pos 0 /**< \brief (AC_INTENSET) Comparator x Interrupt Enable */ +#define AC_INTENSET_COMP_Msk (_U_(0x3) << AC_INTENSET_COMP_Pos) +#define AC_INTENSET_COMP(value) (AC_INTENSET_COMP_Msk & ((value) << AC_INTENSET_COMP_Pos)) +#define AC_INTENSET_WIN0_Pos 4 /**< \brief (AC_INTENSET) Window 0 Interrupt Enable */ +#define AC_INTENSET_WIN0 (_U_(1) << AC_INTENSET_WIN0_Pos) +#define AC_INTENSET_WIN_Pos 4 /**< \brief (AC_INTENSET) Window x Interrupt Enable */ +#define AC_INTENSET_WIN_Msk (_U_(0x1) << AC_INTENSET_WIN_Pos) +#define AC_INTENSET_WIN(value) (AC_INTENSET_WIN_Msk & ((value) << AC_INTENSET_WIN_Pos)) +#define AC_INTENSET_MASK _U_(0x13) /**< \brief (AC_INTENSET) MASK Register */ + +/* -------- AC_INTFLAG : (AC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t COMP0:1; /*!< bit: 0 Comparator 0 */ + __I uint8_t COMP1:1; /*!< bit: 1 Comparator 1 */ + __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ + __I uint8_t WIN0:1; /*!< bit: 4 Window 0 */ + __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + __I uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x */ + __I uint8_t :2; /*!< bit: 2.. 3 Reserved */ + __I uint8_t WIN:1; /*!< bit: 4 Window x */ + __I uint8_t :3; /*!< bit: 5.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_INTFLAG_OFFSET 0x06 /**< \brief (AC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define AC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define AC_INTFLAG_COMP0_Pos 0 /**< \brief (AC_INTFLAG) Comparator 0 */ +#define AC_INTFLAG_COMP0 (_U_(1) << AC_INTFLAG_COMP0_Pos) +#define AC_INTFLAG_COMP1_Pos 1 /**< \brief (AC_INTFLAG) Comparator 1 */ +#define AC_INTFLAG_COMP1 (_U_(1) << AC_INTFLAG_COMP1_Pos) +#define AC_INTFLAG_COMP_Pos 0 /**< \brief (AC_INTFLAG) Comparator x */ +#define AC_INTFLAG_COMP_Msk (_U_(0x3) << AC_INTFLAG_COMP_Pos) +#define AC_INTFLAG_COMP(value) (AC_INTFLAG_COMP_Msk & ((value) << AC_INTFLAG_COMP_Pos)) +#define AC_INTFLAG_WIN0_Pos 4 /**< \brief (AC_INTFLAG) Window 0 */ +#define AC_INTFLAG_WIN0 (_U_(1) << AC_INTFLAG_WIN0_Pos) +#define AC_INTFLAG_WIN_Pos 4 /**< \brief (AC_INTFLAG) Window x */ +#define AC_INTFLAG_WIN_Msk (_U_(0x1) << AC_INTFLAG_WIN_Pos) +#define AC_INTFLAG_WIN(value) (AC_INTFLAG_WIN_Msk & ((value) << AC_INTFLAG_WIN_Pos)) +#define AC_INTFLAG_MASK _U_(0x13) /**< \brief (AC_INTFLAG) MASK Register */ + +/* -------- AC_STATUSA : (AC Offset: 0x07) (R/ 8) Status A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */ + uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */ + uint8_t :2; /*!< bit: 2.. 3 Reserved */ + uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSA_OFFSET 0x07 /**< \brief (AC_STATUSA offset) Status A */ +#define AC_STATUSA_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSA reset_value) Status A */ + +#define AC_STATUSA_STATE0_Pos 0 /**< \brief (AC_STATUSA) Comparator 0 Current State */ +#define AC_STATUSA_STATE0 (_U_(1) << AC_STATUSA_STATE0_Pos) +#define AC_STATUSA_STATE1_Pos 1 /**< \brief (AC_STATUSA) Comparator 1 Current State */ +#define AC_STATUSA_STATE1 (_U_(1) << AC_STATUSA_STATE1_Pos) +#define AC_STATUSA_STATE_Pos 0 /**< \brief (AC_STATUSA) Comparator x Current State */ +#define AC_STATUSA_STATE_Msk (_U_(0x3) << AC_STATUSA_STATE_Pos) +#define AC_STATUSA_STATE(value) (AC_STATUSA_STATE_Msk & ((value) << AC_STATUSA_STATE_Pos)) +#define AC_STATUSA_WSTATE0_Pos 4 /**< \brief (AC_STATUSA) Window 0 Current State */ +#define AC_STATUSA_WSTATE0_Msk (_U_(0x3) << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0(value) (AC_STATUSA_WSTATE0_Msk & ((value) << AC_STATUSA_WSTATE0_Pos)) +#define AC_STATUSA_WSTATE0_ABOVE_Val _U_(0x0) /**< \brief (AC_STATUSA) Signal is above window */ +#define AC_STATUSA_WSTATE0_INSIDE_Val _U_(0x1) /**< \brief (AC_STATUSA) Signal is inside window */ +#define AC_STATUSA_WSTATE0_BELOW_Val _U_(0x2) /**< \brief (AC_STATUSA) Signal is below window */ +#define AC_STATUSA_WSTATE0_ABOVE (AC_STATUSA_WSTATE0_ABOVE_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0_INSIDE (AC_STATUSA_WSTATE0_INSIDE_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_WSTATE0_BELOW (AC_STATUSA_WSTATE0_BELOW_Val << AC_STATUSA_WSTATE0_Pos) +#define AC_STATUSA_MASK _U_(0x33) /**< \brief (AC_STATUSA) MASK Register */ + +/* -------- AC_STATUSB : (AC Offset: 0x08) (R/ 8) Status B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t READY0:1; /*!< bit: 0 Comparator 0 Ready */ + uint8_t READY1:1; /*!< bit: 1 Comparator 1 Ready */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t READY:2; /*!< bit: 0.. 1 Comparator x Ready */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} AC_STATUSB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_STATUSB_OFFSET 0x08 /**< \brief (AC_STATUSB offset) Status B */ +#define AC_STATUSB_RESETVALUE _U_(0x00) /**< \brief (AC_STATUSB reset_value) Status B */ + +#define AC_STATUSB_READY0_Pos 0 /**< \brief (AC_STATUSB) Comparator 0 Ready */ +#define AC_STATUSB_READY0 (_U_(1) << AC_STATUSB_READY0_Pos) +#define AC_STATUSB_READY1_Pos 1 /**< \brief (AC_STATUSB) Comparator 1 Ready */ +#define AC_STATUSB_READY1 (_U_(1) << AC_STATUSB_READY1_Pos) +#define AC_STATUSB_READY_Pos 0 /**< \brief (AC_STATUSB) Comparator x Ready */ +#define AC_STATUSB_READY_Msk (_U_(0x3) << AC_STATUSB_READY_Pos) +#define AC_STATUSB_READY(value) (AC_STATUSB_READY_Msk & ((value) << AC_STATUSB_READY_Pos)) +#define AC_STATUSB_MASK _U_(0x03) /**< \brief (AC_STATUSB) MASK Register */ + +/* -------- AC_DBGCTRL : (AC Offset: 0x09) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_DBGCTRL_OFFSET 0x09 /**< \brief (AC_DBGCTRL offset) Debug Control */ +#define AC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_DBGCTRL reset_value) Debug Control */ + +#define AC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (AC_DBGCTRL) Debug Run */ +#define AC_DBGCTRL_DBGRUN (_U_(0x1) << AC_DBGCTRL_DBGRUN_Pos) +#define AC_DBGCTRL_MASK _U_(0x01) /**< \brief (AC_DBGCTRL) MASK Register */ + +/* -------- AC_WINCTRL : (AC Offset: 0x0A) (R/W 8) Window Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t WEN0:1; /*!< bit: 0 Window 0 Mode Enable */ + uint8_t WINTSEL0:2; /*!< bit: 1.. 2 Window 0 Interrupt Selection */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_WINCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_WINCTRL_OFFSET 0x0A /**< \brief (AC_WINCTRL offset) Window Control */ +#define AC_WINCTRL_RESETVALUE _U_(0x00) /**< \brief (AC_WINCTRL reset_value) Window Control */ + +#define AC_WINCTRL_WEN0_Pos 0 /**< \brief (AC_WINCTRL) Window 0 Mode Enable */ +#define AC_WINCTRL_WEN0 (_U_(0x1) << AC_WINCTRL_WEN0_Pos) +#define AC_WINCTRL_WINTSEL0_Pos 1 /**< \brief (AC_WINCTRL) Window 0 Interrupt Selection */ +#define AC_WINCTRL_WINTSEL0_Msk (_U_(0x3) << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0(value) (AC_WINCTRL_WINTSEL0_Msk & ((value) << AC_WINCTRL_WINTSEL0_Pos)) +#define AC_WINCTRL_WINTSEL0_ABOVE_Val _U_(0x0) /**< \brief (AC_WINCTRL) Interrupt on signal above window */ +#define AC_WINCTRL_WINTSEL0_INSIDE_Val _U_(0x1) /**< \brief (AC_WINCTRL) Interrupt on signal inside window */ +#define AC_WINCTRL_WINTSEL0_BELOW_Val _U_(0x2) /**< \brief (AC_WINCTRL) Interrupt on signal below window */ +#define AC_WINCTRL_WINTSEL0_OUTSIDE_Val _U_(0x3) /**< \brief (AC_WINCTRL) Interrupt on signal outside window */ +#define AC_WINCTRL_WINTSEL0_ABOVE (AC_WINCTRL_WINTSEL0_ABOVE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_INSIDE (AC_WINCTRL_WINTSEL0_INSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_BELOW (AC_WINCTRL_WINTSEL0_BELOW_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_WINTSEL0_OUTSIDE (AC_WINCTRL_WINTSEL0_OUTSIDE_Val << AC_WINCTRL_WINTSEL0_Pos) +#define AC_WINCTRL_MASK _U_(0x07) /**< \brief (AC_WINCTRL) MASK Register */ + +/* -------- AC_SCALER : (AC Offset: 0x0C) (R/W 8) Scaler n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t VALUE:6; /*!< bit: 0.. 5 Scaler Value */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AC_SCALER_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_SCALER_OFFSET 0x0C /**< \brief (AC_SCALER offset) Scaler n */ +#define AC_SCALER_RESETVALUE _U_(0x00) /**< \brief (AC_SCALER reset_value) Scaler n */ + +#define AC_SCALER_VALUE_Pos 0 /**< \brief (AC_SCALER) Scaler Value */ +#define AC_SCALER_VALUE_Msk (_U_(0x3F) << AC_SCALER_VALUE_Pos) +#define AC_SCALER_VALUE(value) (AC_SCALER_VALUE_Msk & ((value) << AC_SCALER_VALUE_Pos)) +#define AC_SCALER_MASK _U_(0x3F) /**< \brief (AC_SCALER) MASK Register */ + +/* -------- AC_COMPCTRL : (AC Offset: 0x10) (R/W 32) Comparator Control n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t ENABLE:1; /*!< bit: 1 Enable */ + uint32_t SINGLE:1; /*!< bit: 2 Single-Shot Mode */ + uint32_t INTSEL:2; /*!< bit: 3.. 4 Interrupt Selection */ + uint32_t :1; /*!< bit: 5 Reserved */ + uint32_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint32_t :1; /*!< bit: 7 Reserved */ + uint32_t MUXNEG:3; /*!< bit: 8..10 Negative Input Mux Selection */ + uint32_t :1; /*!< bit: 11 Reserved */ + uint32_t MUXPOS:3; /*!< bit: 12..14 Positive Input Mux Selection */ + uint32_t SWAP:1; /*!< bit: 15 Swap Inputs and Invert */ + uint32_t SPEED:2; /*!< bit: 16..17 Speed Selection */ + uint32_t :1; /*!< bit: 18 Reserved */ + uint32_t HYSTEN:1; /*!< bit: 19 Hysteresis Enable */ + uint32_t HYST:2; /*!< bit: 20..21 Hysteresis Level */ + uint32_t :2; /*!< bit: 22..23 Reserved */ + uint32_t FLEN:3; /*!< bit: 24..26 Filter Length */ + uint32_t :1; /*!< bit: 27 Reserved */ + uint32_t OUT:2; /*!< bit: 28..29 Output */ + uint32_t :2; /*!< bit: 30..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} AC_COMPCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_COMPCTRL_OFFSET 0x10 /**< \brief (AC_COMPCTRL offset) Comparator Control n */ +#define AC_COMPCTRL_RESETVALUE _U_(0x00000000) /**< \brief (AC_COMPCTRL reset_value) Comparator Control n */ + +#define AC_COMPCTRL_ENABLE_Pos 1 /**< \brief (AC_COMPCTRL) Enable */ +#define AC_COMPCTRL_ENABLE (_U_(0x1) << AC_COMPCTRL_ENABLE_Pos) +#define AC_COMPCTRL_SINGLE_Pos 2 /**< \brief (AC_COMPCTRL) Single-Shot Mode */ +#define AC_COMPCTRL_SINGLE (_U_(0x1) << AC_COMPCTRL_SINGLE_Pos) +#define AC_COMPCTRL_INTSEL_Pos 3 /**< \brief (AC_COMPCTRL) Interrupt Selection */ +#define AC_COMPCTRL_INTSEL_Msk (_U_(0x3) << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL(value) (AC_COMPCTRL_INTSEL_Msk & ((value) << AC_COMPCTRL_INTSEL_Pos)) +#define AC_COMPCTRL_INTSEL_TOGGLE_Val _U_(0x0) /**< \brief (AC_COMPCTRL) Interrupt on comparator output toggle */ +#define AC_COMPCTRL_INTSEL_RISING_Val _U_(0x1) /**< \brief (AC_COMPCTRL) Interrupt on comparator output rising */ +#define AC_COMPCTRL_INTSEL_FALLING_Val _U_(0x2) /**< \brief (AC_COMPCTRL) Interrupt on comparator output falling */ +#define AC_COMPCTRL_INTSEL_EOC_Val _U_(0x3) /**< \brief (AC_COMPCTRL) Interrupt on end of comparison (single-shot mode only) */ +#define AC_COMPCTRL_INTSEL_TOGGLE (AC_COMPCTRL_INTSEL_TOGGLE_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_RISING (AC_COMPCTRL_INTSEL_RISING_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_FALLING (AC_COMPCTRL_INTSEL_FALLING_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_INTSEL_EOC (AC_COMPCTRL_INTSEL_EOC_Val << AC_COMPCTRL_INTSEL_Pos) +#define AC_COMPCTRL_RUNSTDBY_Pos 6 /**< \brief (AC_COMPCTRL) Run in Standby */ +#define AC_COMPCTRL_RUNSTDBY (_U_(0x1) << AC_COMPCTRL_RUNSTDBY_Pos) +#define AC_COMPCTRL_MUXNEG_Pos 8 /**< \brief (AC_COMPCTRL) Negative Input Mux Selection */ +#define AC_COMPCTRL_MUXNEG_Msk (_U_(0x7) << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG(value) (AC_COMPCTRL_MUXNEG_Msk & ((value) << AC_COMPCTRL_MUXNEG_Pos)) +#define AC_COMPCTRL_MUXNEG_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ +#define AC_COMPCTRL_MUXNEG_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ +#define AC_COMPCTRL_MUXNEG_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ +#define AC_COMPCTRL_MUXNEG_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ +#define AC_COMPCTRL_MUXNEG_GND_Val _U_(0x4) /**< \brief (AC_COMPCTRL) Ground */ +#define AC_COMPCTRL_MUXNEG_VSCALE_Val _U_(0x5) /**< \brief (AC_COMPCTRL) VDD scaler */ +#define AC_COMPCTRL_MUXNEG_BANDGAP_Val _U_(0x6) /**< \brief (AC_COMPCTRL) Internal bandgap voltage */ +#define AC_COMPCTRL_MUXNEG_DAC_Val _U_(0x7) /**< \brief (AC_COMPCTRL) DAC output */ +#define AC_COMPCTRL_MUXNEG_PIN0 (AC_COMPCTRL_MUXNEG_PIN0_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN1 (AC_COMPCTRL_MUXNEG_PIN1_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN2 (AC_COMPCTRL_MUXNEG_PIN2_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_PIN3 (AC_COMPCTRL_MUXNEG_PIN3_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_GND (AC_COMPCTRL_MUXNEG_GND_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_VSCALE (AC_COMPCTRL_MUXNEG_VSCALE_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_BANDGAP (AC_COMPCTRL_MUXNEG_BANDGAP_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXNEG_DAC (AC_COMPCTRL_MUXNEG_DAC_Val << AC_COMPCTRL_MUXNEG_Pos) +#define AC_COMPCTRL_MUXPOS_Pos 12 /**< \brief (AC_COMPCTRL) Positive Input Mux Selection */ +#define AC_COMPCTRL_MUXPOS_Msk (_U_(0x7) << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS(value) (AC_COMPCTRL_MUXPOS_Msk & ((value) << AC_COMPCTRL_MUXPOS_Pos)) +#define AC_COMPCTRL_MUXPOS_PIN0_Val _U_(0x0) /**< \brief (AC_COMPCTRL) I/O pin 0 */ +#define AC_COMPCTRL_MUXPOS_PIN1_Val _U_(0x1) /**< \brief (AC_COMPCTRL) I/O pin 1 */ +#define AC_COMPCTRL_MUXPOS_PIN2_Val _U_(0x2) /**< \brief (AC_COMPCTRL) I/O pin 2 */ +#define AC_COMPCTRL_MUXPOS_PIN3_Val _U_(0x3) /**< \brief (AC_COMPCTRL) I/O pin 3 */ +#define AC_COMPCTRL_MUXPOS_VSCALE_Val _U_(0x4) /**< \brief (AC_COMPCTRL) VDD Scaler */ +#define AC_COMPCTRL_MUXPOS_PIN0 (AC_COMPCTRL_MUXPOS_PIN0_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN1 (AC_COMPCTRL_MUXPOS_PIN1_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN2 (AC_COMPCTRL_MUXPOS_PIN2_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_PIN3 (AC_COMPCTRL_MUXPOS_PIN3_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_MUXPOS_VSCALE (AC_COMPCTRL_MUXPOS_VSCALE_Val << AC_COMPCTRL_MUXPOS_Pos) +#define AC_COMPCTRL_SWAP_Pos 15 /**< \brief (AC_COMPCTRL) Swap Inputs and Invert */ +#define AC_COMPCTRL_SWAP (_U_(0x1) << AC_COMPCTRL_SWAP_Pos) +#define AC_COMPCTRL_SPEED_Pos 16 /**< \brief (AC_COMPCTRL) Speed Selection */ +#define AC_COMPCTRL_SPEED_Msk (_U_(0x3) << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_SPEED(value) (AC_COMPCTRL_SPEED_Msk & ((value) << AC_COMPCTRL_SPEED_Pos)) +#define AC_COMPCTRL_SPEED_HIGH_Val _U_(0x3) /**< \brief (AC_COMPCTRL) High speed */ +#define AC_COMPCTRL_SPEED_HIGH (AC_COMPCTRL_SPEED_HIGH_Val << AC_COMPCTRL_SPEED_Pos) +#define AC_COMPCTRL_HYSTEN_Pos 19 /**< \brief (AC_COMPCTRL) Hysteresis Enable */ +#define AC_COMPCTRL_HYSTEN (_U_(0x1) << AC_COMPCTRL_HYSTEN_Pos) +#define AC_COMPCTRL_HYST_Pos 20 /**< \brief (AC_COMPCTRL) Hysteresis Level */ +#define AC_COMPCTRL_HYST_Msk (_U_(0x3) << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_HYST(value) (AC_COMPCTRL_HYST_Msk & ((value) << AC_COMPCTRL_HYST_Pos)) +#define AC_COMPCTRL_HYST_HYST50_Val _U_(0x0) /**< \brief (AC_COMPCTRL) 50mV */ +#define AC_COMPCTRL_HYST_HYST100_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 100mV */ +#define AC_COMPCTRL_HYST_HYST150_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 150mV */ +#define AC_COMPCTRL_HYST_HYST50 (AC_COMPCTRL_HYST_HYST50_Val << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_HYST_HYST100 (AC_COMPCTRL_HYST_HYST100_Val << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_HYST_HYST150 (AC_COMPCTRL_HYST_HYST150_Val << AC_COMPCTRL_HYST_Pos) +#define AC_COMPCTRL_FLEN_Pos 24 /**< \brief (AC_COMPCTRL) Filter Length */ +#define AC_COMPCTRL_FLEN_Msk (_U_(0x7) << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN(value) (AC_COMPCTRL_FLEN_Msk & ((value) << AC_COMPCTRL_FLEN_Pos)) +#define AC_COMPCTRL_FLEN_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) No filtering */ +#define AC_COMPCTRL_FLEN_MAJ3_Val _U_(0x1) /**< \brief (AC_COMPCTRL) 3-bit majority function (2 of 3) */ +#define AC_COMPCTRL_FLEN_MAJ5_Val _U_(0x2) /**< \brief (AC_COMPCTRL) 5-bit majority function (3 of 5) */ +#define AC_COMPCTRL_FLEN_OFF (AC_COMPCTRL_FLEN_OFF_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN_MAJ3 (AC_COMPCTRL_FLEN_MAJ3_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_FLEN_MAJ5 (AC_COMPCTRL_FLEN_MAJ5_Val << AC_COMPCTRL_FLEN_Pos) +#define AC_COMPCTRL_OUT_Pos 28 /**< \brief (AC_COMPCTRL) Output */ +#define AC_COMPCTRL_OUT_Msk (_U_(0x3) << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT(value) (AC_COMPCTRL_OUT_Msk & ((value) << AC_COMPCTRL_OUT_Pos)) +#define AC_COMPCTRL_OUT_OFF_Val _U_(0x0) /**< \brief (AC_COMPCTRL) The output of COMPn is not routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_ASYNC_Val _U_(0x1) /**< \brief (AC_COMPCTRL) The asynchronous output of COMPn is routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_SYNC_Val _U_(0x2) /**< \brief (AC_COMPCTRL) The synchronous output (including filtering) of COMPn is routed to the COMPn I/O port */ +#define AC_COMPCTRL_OUT_OFF (AC_COMPCTRL_OUT_OFF_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT_ASYNC (AC_COMPCTRL_OUT_ASYNC_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_OUT_SYNC (AC_COMPCTRL_OUT_SYNC_Val << AC_COMPCTRL_OUT_Pos) +#define AC_COMPCTRL_MASK _U_(0x373BF75E) /**< \brief (AC_COMPCTRL) MASK Register */ + +/* -------- AC_SYNCBUSY : (AC Offset: 0x20) (R/ 32) Synchronization Busy -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Software Reset Synchronization Busy */ + uint32_t ENABLE:1; /*!< bit: 1 Enable Synchronization Busy */ + uint32_t WINCTRL:1; /*!< bit: 2 WINCTRL Synchronization Busy */ + uint32_t COMPCTRL0:1; /*!< bit: 3 COMPCTRL 0 Synchronization Busy */ + uint32_t COMPCTRL1:1; /*!< bit: 4 COMPCTRL 1 Synchronization Busy */ + uint32_t :27; /*!< bit: 5..31 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t :3; /*!< bit: 0.. 2 Reserved */ + uint32_t COMPCTRL:2; /*!< bit: 3.. 4 COMPCTRL x Synchronization Busy */ + uint32_t :27; /*!< bit: 5..31 Reserved */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} AC_SYNCBUSY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_SYNCBUSY_OFFSET 0x20 /**< \brief (AC_SYNCBUSY offset) Synchronization Busy */ +#define AC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (AC_SYNCBUSY reset_value) Synchronization Busy */ + +#define AC_SYNCBUSY_SWRST_Pos 0 /**< \brief (AC_SYNCBUSY) Software Reset Synchronization Busy */ +#define AC_SYNCBUSY_SWRST (_U_(0x1) << AC_SYNCBUSY_SWRST_Pos) +#define AC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (AC_SYNCBUSY) Enable Synchronization Busy */ +#define AC_SYNCBUSY_ENABLE (_U_(0x1) << AC_SYNCBUSY_ENABLE_Pos) +#define AC_SYNCBUSY_WINCTRL_Pos 2 /**< \brief (AC_SYNCBUSY) WINCTRL Synchronization Busy */ +#define AC_SYNCBUSY_WINCTRL (_U_(0x1) << AC_SYNCBUSY_WINCTRL_Pos) +#define AC_SYNCBUSY_COMPCTRL0_Pos 3 /**< \brief (AC_SYNCBUSY) COMPCTRL 0 Synchronization Busy */ +#define AC_SYNCBUSY_COMPCTRL0 (_U_(1) << AC_SYNCBUSY_COMPCTRL0_Pos) +#define AC_SYNCBUSY_COMPCTRL1_Pos 4 /**< \brief (AC_SYNCBUSY) COMPCTRL 1 Synchronization Busy */ +#define AC_SYNCBUSY_COMPCTRL1 (_U_(1) << AC_SYNCBUSY_COMPCTRL1_Pos) +#define AC_SYNCBUSY_COMPCTRL_Pos 3 /**< \brief (AC_SYNCBUSY) COMPCTRL x Synchronization Busy */ +#define AC_SYNCBUSY_COMPCTRL_Msk (_U_(0x3) << AC_SYNCBUSY_COMPCTRL_Pos) +#define AC_SYNCBUSY_COMPCTRL(value) (AC_SYNCBUSY_COMPCTRL_Msk & ((value) << AC_SYNCBUSY_COMPCTRL_Pos)) +#define AC_SYNCBUSY_MASK _U_(0x0000001F) /**< \brief (AC_SYNCBUSY) MASK Register */ + +/* -------- AC_CALIB : (AC Offset: 0x24) (R/W 16) Calibration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t BIAS0:2; /*!< bit: 0.. 1 COMP0/1 Bias Scaling */ + uint16_t :14; /*!< bit: 2..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} AC_CALIB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AC_CALIB_OFFSET 0x24 /**< \brief (AC_CALIB offset) Calibration */ +#define AC_CALIB_RESETVALUE _U_(0x0101) /**< \brief (AC_CALIB reset_value) Calibration */ + +#define AC_CALIB_BIAS0_Pos 0 /**< \brief (AC_CALIB) COMP0/1 Bias Scaling */ +#define AC_CALIB_BIAS0_Msk (_U_(0x3) << AC_CALIB_BIAS0_Pos) +#define AC_CALIB_BIAS0(value) (AC_CALIB_BIAS0_Msk & ((value) << AC_CALIB_BIAS0_Pos)) +#define AC_CALIB_MASK _U_(0x0003) /**< \brief (AC_CALIB) MASK Register */ + +/** \brief AC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO AC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ + __O AC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 ( /W 8) Control B */ + __IO AC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 16) Event Control */ + __IO AC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ + __IO AC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ + __IO AC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ + __I AC_STATUSA_Type STATUSA; /**< \brief Offset: 0x07 (R/ 8) Status A */ + __I AC_STATUSB_Type STATUSB; /**< \brief Offset: 0x08 (R/ 8) Status B */ + __IO AC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x09 (R/W 8) Debug Control */ + __IO AC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x0A (R/W 8) Window Control */ + RoReg8 Reserved1[0x1]; + __IO AC_SCALER_Type SCALER[2]; /**< \brief Offset: 0x0C (R/W 8) Scaler n */ + RoReg8 Reserved2[0x2]; + __IO AC_COMPCTRL_Type COMPCTRL[2]; /**< \brief Offset: 0x10 (R/W 32) Comparator Control n */ + RoReg8 Reserved3[0x8]; + __I AC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x20 (R/ 32) Synchronization Busy */ + __IO AC_CALIB_Type CALIB; /**< \brief Offset: 0x24 (R/W 16) Calibration */ +} Ac; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_AC_COMPONENT_ */ diff --git a/lib/samd51/samd51a/include/component/adc.h b/lib/samd51/samd51a/include/component/adc.h index 0dbe8e3..a379a22 100644 --- a/lib/samd51/samd51a/include/component/adc.h +++ b/lib/samd51/samd51a/include/component/adc.h @@ -1,871 +1,871 @@ -/** - * \file - * - * \brief Component description for ADC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_ADC_COMPONENT_ -#define _SAMD51_ADC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR ADC */ -/* ========================================================================== */ -/** \addtogroup SAMD51_ADC Analog Digital Converter */ -/*@{*/ - -#define ADC_U2500 -#define REV_ADC 0x100 - -/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 16) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t SWRST:1; /*!< bit: 0 Software Reset */ - uint16_t ENABLE:1; /*!< bit: 1 Enable */ - uint16_t :1; /*!< bit: 2 Reserved */ - uint16_t DUALSEL:2; /*!< bit: 3.. 4 Dual Mode Trigger Selection */ - uint16_t SLAVEEN:1; /*!< bit: 5 Slave Enable */ - uint16_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ - uint16_t ONDEMAND:1; /*!< bit: 7 On Demand Control */ - uint16_t PRESCALER:3; /*!< bit: 8..10 Prescaler Configuration */ - uint16_t :4; /*!< bit: 11..14 Reserved */ - uint16_t R2R:1; /*!< bit: 15 Rail to Rail Operation Enable */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_CTRLA_OFFSET 0x00 /**< \brief (ADC_CTRLA offset) Control A */ -#define ADC_CTRLA_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLA reset_value) Control A */ - -#define ADC_CTRLA_SWRST_Pos 0 /**< \brief (ADC_CTRLA) Software Reset */ -#define ADC_CTRLA_SWRST (_U_(0x1) << ADC_CTRLA_SWRST_Pos) -#define ADC_CTRLA_ENABLE_Pos 1 /**< \brief (ADC_CTRLA) Enable */ -#define ADC_CTRLA_ENABLE (_U_(0x1) << ADC_CTRLA_ENABLE_Pos) -#define ADC_CTRLA_DUALSEL_Pos 3 /**< \brief (ADC_CTRLA) Dual Mode Trigger Selection */ -#define ADC_CTRLA_DUALSEL_Msk (_U_(0x3) << ADC_CTRLA_DUALSEL_Pos) -#define ADC_CTRLA_DUALSEL(value) (ADC_CTRLA_DUALSEL_Msk & ((value) << ADC_CTRLA_DUALSEL_Pos)) -#define ADC_CTRLA_DUALSEL_BOTH_Val _U_(0x0) /**< \brief (ADC_CTRLA) Start event or software trigger will start a conversion on both ADCs */ -#define ADC_CTRLA_DUALSEL_INTERLEAVE_Val _U_(0x1) /**< \brief (ADC_CTRLA) START event or software trigger will alternatingly start a conversion on ADC0 and ADC1 */ -#define ADC_CTRLA_DUALSEL_BOTH (ADC_CTRLA_DUALSEL_BOTH_Val << ADC_CTRLA_DUALSEL_Pos) -#define ADC_CTRLA_DUALSEL_INTERLEAVE (ADC_CTRLA_DUALSEL_INTERLEAVE_Val << ADC_CTRLA_DUALSEL_Pos) -#define ADC_CTRLA_SLAVEEN_Pos 5 /**< \brief (ADC_CTRLA) Slave Enable */ -#define ADC_CTRLA_SLAVEEN (_U_(0x1) << ADC_CTRLA_SLAVEEN_Pos) -#define ADC_CTRLA_RUNSTDBY_Pos 6 /**< \brief (ADC_CTRLA) Run in Standby */ -#define ADC_CTRLA_RUNSTDBY (_U_(0x1) << ADC_CTRLA_RUNSTDBY_Pos) -#define ADC_CTRLA_ONDEMAND_Pos 7 /**< \brief (ADC_CTRLA) On Demand Control */ -#define ADC_CTRLA_ONDEMAND (_U_(0x1) << ADC_CTRLA_ONDEMAND_Pos) -#define ADC_CTRLA_PRESCALER_Pos 8 /**< \brief (ADC_CTRLA) Prescaler Configuration */ -#define ADC_CTRLA_PRESCALER_Msk (_U_(0x7) << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER(value) (ADC_CTRLA_PRESCALER_Msk & ((value) << ADC_CTRLA_PRESCALER_Pos)) -#define ADC_CTRLA_PRESCALER_DIV2_Val _U_(0x0) /**< \brief (ADC_CTRLA) Peripheral clock divided by 2 */ -#define ADC_CTRLA_PRESCALER_DIV4_Val _U_(0x1) /**< \brief (ADC_CTRLA) Peripheral clock divided by 4 */ -#define ADC_CTRLA_PRESCALER_DIV8_Val _U_(0x2) /**< \brief (ADC_CTRLA) Peripheral clock divided by 8 */ -#define ADC_CTRLA_PRESCALER_DIV16_Val _U_(0x3) /**< \brief (ADC_CTRLA) Peripheral clock divided by 16 */ -#define ADC_CTRLA_PRESCALER_DIV32_Val _U_(0x4) /**< \brief (ADC_CTRLA) Peripheral clock divided by 32 */ -#define ADC_CTRLA_PRESCALER_DIV64_Val _U_(0x5) /**< \brief (ADC_CTRLA) Peripheral clock divided by 64 */ -#define ADC_CTRLA_PRESCALER_DIV128_Val _U_(0x6) /**< \brief (ADC_CTRLA) Peripheral clock divided by 128 */ -#define ADC_CTRLA_PRESCALER_DIV256_Val _U_(0x7) /**< \brief (ADC_CTRLA) Peripheral clock divided by 256 */ -#define ADC_CTRLA_PRESCALER_DIV2 (ADC_CTRLA_PRESCALER_DIV2_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV4 (ADC_CTRLA_PRESCALER_DIV4_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV8 (ADC_CTRLA_PRESCALER_DIV8_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV16 (ADC_CTRLA_PRESCALER_DIV16_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV32 (ADC_CTRLA_PRESCALER_DIV32_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV64 (ADC_CTRLA_PRESCALER_DIV64_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV128 (ADC_CTRLA_PRESCALER_DIV128_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_PRESCALER_DIV256 (ADC_CTRLA_PRESCALER_DIV256_Val << ADC_CTRLA_PRESCALER_Pos) -#define ADC_CTRLA_R2R_Pos 15 /**< \brief (ADC_CTRLA) Rail to Rail Operation Enable */ -#define ADC_CTRLA_R2R (_U_(0x1) << ADC_CTRLA_R2R_Pos) -#define ADC_CTRLA_MASK _U_(0x87FB) /**< \brief (ADC_CTRLA) MASK Register */ - -/* -------- ADC_EVCTRL : (ADC Offset: 0x02) (R/W 8) Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t FLUSHEI:1; /*!< bit: 0 Flush Event Input Enable */ - uint8_t STARTEI:1; /*!< bit: 1 Start Conversion Event Input Enable */ - uint8_t FLUSHINV:1; /*!< bit: 2 Flush Event Invert Enable */ - uint8_t STARTINV:1; /*!< bit: 3 Start Conversion Event Invert Enable */ - uint8_t RESRDYEO:1; /*!< bit: 4 Result Ready Event Out */ - uint8_t WINMONEO:1; /*!< bit: 5 Window Monitor Event Out */ - uint8_t :2; /*!< bit: 6.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_EVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_EVCTRL_OFFSET 0x02 /**< \brief (ADC_EVCTRL offset) Event Control */ -#define ADC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_EVCTRL reset_value) Event Control */ - -#define ADC_EVCTRL_FLUSHEI_Pos 0 /**< \brief (ADC_EVCTRL) Flush Event Input Enable */ -#define ADC_EVCTRL_FLUSHEI (_U_(0x1) << ADC_EVCTRL_FLUSHEI_Pos) -#define ADC_EVCTRL_STARTEI_Pos 1 /**< \brief (ADC_EVCTRL) Start Conversion Event Input Enable */ -#define ADC_EVCTRL_STARTEI (_U_(0x1) << ADC_EVCTRL_STARTEI_Pos) -#define ADC_EVCTRL_FLUSHINV_Pos 2 /**< \brief (ADC_EVCTRL) Flush Event Invert Enable */ -#define ADC_EVCTRL_FLUSHINV (_U_(0x1) << ADC_EVCTRL_FLUSHINV_Pos) -#define ADC_EVCTRL_STARTINV_Pos 3 /**< \brief (ADC_EVCTRL) Start Conversion Event Invert Enable */ -#define ADC_EVCTRL_STARTINV (_U_(0x1) << ADC_EVCTRL_STARTINV_Pos) -#define ADC_EVCTRL_RESRDYEO_Pos 4 /**< \brief (ADC_EVCTRL) Result Ready Event Out */ -#define ADC_EVCTRL_RESRDYEO (_U_(0x1) << ADC_EVCTRL_RESRDYEO_Pos) -#define ADC_EVCTRL_WINMONEO_Pos 5 /**< \brief (ADC_EVCTRL) Window Monitor Event Out */ -#define ADC_EVCTRL_WINMONEO (_U_(0x1) << ADC_EVCTRL_WINMONEO_Pos) -#define ADC_EVCTRL_MASK _U_(0x3F) /**< \brief (ADC_EVCTRL) MASK Register */ - -/* -------- ADC_DBGCTRL : (ADC Offset: 0x03) (R/W 8) Debug Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_DBGCTRL_OFFSET 0x03 /**< \brief (ADC_DBGCTRL offset) Debug Control */ -#define ADC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_DBGCTRL reset_value) Debug Control */ - -#define ADC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (ADC_DBGCTRL) Debug Run */ -#define ADC_DBGCTRL_DBGRUN (_U_(0x1) << ADC_DBGCTRL_DBGRUN_Pos) -#define ADC_DBGCTRL_MASK _U_(0x01) /**< \brief (ADC_DBGCTRL) MASK Register */ - -/* -------- ADC_INPUTCTRL : (ADC Offset: 0x04) (R/W 16) Input Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t MUXPOS:5; /*!< bit: 0.. 4 Positive Mux Input Selection */ - uint16_t :2; /*!< bit: 5.. 6 Reserved */ - uint16_t DIFFMODE:1; /*!< bit: 7 Differential Mode */ - uint16_t MUXNEG:5; /*!< bit: 8..12 Negative Mux Input Selection */ - uint16_t :2; /*!< bit: 13..14 Reserved */ - uint16_t DSEQSTOP:1; /*!< bit: 15 Stop DMA Sequencing */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_INPUTCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INPUTCTRL_OFFSET 0x04 /**< \brief (ADC_INPUTCTRL offset) Input Control */ -#define ADC_INPUTCTRL_RESETVALUE _U_(0x0000) /**< \brief (ADC_INPUTCTRL reset_value) Input Control */ - -#define ADC_INPUTCTRL_MUXPOS_Pos 0 /**< \brief (ADC_INPUTCTRL) Positive Mux Input Selection */ -#define ADC_INPUTCTRL_MUXPOS_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS(value) (ADC_INPUTCTRL_MUXPOS_Msk & ((value) << ADC_INPUTCTRL_MUXPOS_Pos)) -#define ADC_INPUTCTRL_MUXPOS_AIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN8_Val _U_(0x8) /**< \brief (ADC_INPUTCTRL) ADC AIN8 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN9_Val _U_(0x9) /**< \brief (ADC_INPUTCTRL) ADC AIN9 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN10_Val _U_(0xA) /**< \brief (ADC_INPUTCTRL) ADC AIN10 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN11_Val _U_(0xB) /**< \brief (ADC_INPUTCTRL) ADC AIN11 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN12_Val _U_(0xC) /**< \brief (ADC_INPUTCTRL) ADC AIN12 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN13_Val _U_(0xD) /**< \brief (ADC_INPUTCTRL) ADC AIN13 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN14_Val _U_(0xE) /**< \brief (ADC_INPUTCTRL) ADC AIN14 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN15_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) ADC AIN15 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN16_Val _U_(0x10) /**< \brief (ADC_INPUTCTRL) ADC AIN16 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN17_Val _U_(0x11) /**< \brief (ADC_INPUTCTRL) ADC AIN17 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN18_Val _U_(0x12) /**< \brief (ADC_INPUTCTRL) ADC AIN18 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN19_Val _U_(0x13) /**< \brief (ADC_INPUTCTRL) ADC AIN19 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN20_Val _U_(0x14) /**< \brief (ADC_INPUTCTRL) ADC AIN20 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN21_Val _U_(0x15) /**< \brief (ADC_INPUTCTRL) ADC AIN21 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN22_Val _U_(0x16) /**< \brief (ADC_INPUTCTRL) ADC AIN22 Pin */ -#define ADC_INPUTCTRL_MUXPOS_AIN23_Val _U_(0x17) /**< \brief (ADC_INPUTCTRL) ADC AIN23 Pin */ -#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled Core Supply */ -#define ADC_INPUTCTRL_MUXPOS_SCALEDVBAT_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled VBAT Supply */ -#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val _U_(0x1A) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled I/O Supply */ -#define ADC_INPUTCTRL_MUXPOS_BANDGAP_Val _U_(0x1B) /**< \brief (ADC_INPUTCTRL) Bandgap Voltage */ -#define ADC_INPUTCTRL_MUXPOS_PTAT_Val _U_(0x1C) /**< \brief (ADC_INPUTCTRL) Temperature Sensor */ -#define ADC_INPUTCTRL_MUXPOS_CTAT_Val _U_(0x1D) /**< \brief (ADC_INPUTCTRL) Temperature Sensor */ -#define ADC_INPUTCTRL_MUXPOS_DAC_Val _U_(0x1E) /**< \brief (ADC_INPUTCTRL) DAC Output */ -#define ADC_INPUTCTRL_MUXPOS_PTC_Val _U_(0x1F) /**< \brief (ADC_INPUTCTRL) PTC output (only on ADC0) */ -#define ADC_INPUTCTRL_MUXPOS_AIN0 (ADC_INPUTCTRL_MUXPOS_AIN0_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN1 (ADC_INPUTCTRL_MUXPOS_AIN1_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN2 (ADC_INPUTCTRL_MUXPOS_AIN2_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN3 (ADC_INPUTCTRL_MUXPOS_AIN3_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN4 (ADC_INPUTCTRL_MUXPOS_AIN4_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN5 (ADC_INPUTCTRL_MUXPOS_AIN5_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN6 (ADC_INPUTCTRL_MUXPOS_AIN6_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN7 (ADC_INPUTCTRL_MUXPOS_AIN7_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN8 (ADC_INPUTCTRL_MUXPOS_AIN8_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN9 (ADC_INPUTCTRL_MUXPOS_AIN9_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN10 (ADC_INPUTCTRL_MUXPOS_AIN10_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN11 (ADC_INPUTCTRL_MUXPOS_AIN11_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN12 (ADC_INPUTCTRL_MUXPOS_AIN12_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN13 (ADC_INPUTCTRL_MUXPOS_AIN13_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN14 (ADC_INPUTCTRL_MUXPOS_AIN14_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN15 (ADC_INPUTCTRL_MUXPOS_AIN15_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN16 (ADC_INPUTCTRL_MUXPOS_AIN16_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN17 (ADC_INPUTCTRL_MUXPOS_AIN17_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN18 (ADC_INPUTCTRL_MUXPOS_AIN18_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN19 (ADC_INPUTCTRL_MUXPOS_AIN19_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN20 (ADC_INPUTCTRL_MUXPOS_AIN20_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN21 (ADC_INPUTCTRL_MUXPOS_AIN21_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN22 (ADC_INPUTCTRL_MUXPOS_AIN22_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_AIN23 (ADC_INPUTCTRL_MUXPOS_AIN23_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC (ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_SCALEDVBAT (ADC_INPUTCTRL_MUXPOS_SCALEDVBAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC (ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_BANDGAP (ADC_INPUTCTRL_MUXPOS_BANDGAP_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PTAT (ADC_INPUTCTRL_MUXPOS_PTAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_CTAT (ADC_INPUTCTRL_MUXPOS_CTAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_DAC (ADC_INPUTCTRL_MUXPOS_DAC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_MUXPOS_PTC (ADC_INPUTCTRL_MUXPOS_PTC_Val << ADC_INPUTCTRL_MUXPOS_Pos) -#define ADC_INPUTCTRL_DIFFMODE_Pos 7 /**< \brief (ADC_INPUTCTRL) Differential Mode */ -#define ADC_INPUTCTRL_DIFFMODE (_U_(0x1) << ADC_INPUTCTRL_DIFFMODE_Pos) -#define ADC_INPUTCTRL_MUXNEG_Pos 8 /**< \brief (ADC_INPUTCTRL) Negative Mux Input Selection */ -#define ADC_INPUTCTRL_MUXNEG_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG(value) (ADC_INPUTCTRL_MUXNEG_Msk & ((value) << ADC_INPUTCTRL_MUXNEG_Pos)) -#define ADC_INPUTCTRL_MUXNEG_AIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ -#define ADC_INPUTCTRL_MUXNEG_AIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ -#define ADC_INPUTCTRL_MUXNEG_GND_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Internal Ground */ -#define ADC_INPUTCTRL_MUXNEG_AIN0 (ADC_INPUTCTRL_MUXNEG_AIN0_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN1 (ADC_INPUTCTRL_MUXNEG_AIN1_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN2 (ADC_INPUTCTRL_MUXNEG_AIN2_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN3 (ADC_INPUTCTRL_MUXNEG_AIN3_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN4 (ADC_INPUTCTRL_MUXNEG_AIN4_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN5 (ADC_INPUTCTRL_MUXNEG_AIN5_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN6 (ADC_INPUTCTRL_MUXNEG_AIN6_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_AIN7 (ADC_INPUTCTRL_MUXNEG_AIN7_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_MUXNEG_GND (ADC_INPUTCTRL_MUXNEG_GND_Val << ADC_INPUTCTRL_MUXNEG_Pos) -#define ADC_INPUTCTRL_DSEQSTOP_Pos 15 /**< \brief (ADC_INPUTCTRL) Stop DMA Sequencing */ -#define ADC_INPUTCTRL_DSEQSTOP (_U_(0x1) << ADC_INPUTCTRL_DSEQSTOP_Pos) -#define ADC_INPUTCTRL_MASK _U_(0x9F9F) /**< \brief (ADC_INPUTCTRL) MASK Register */ - -/* -------- ADC_CTRLB : (ADC Offset: 0x06) (R/W 16) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t LEFTADJ:1; /*!< bit: 0 Left-Adjusted Result */ - uint16_t FREERUN:1; /*!< bit: 1 Free Running Mode */ - uint16_t CORREN:1; /*!< bit: 2 Digital Correction Logic Enable */ - uint16_t RESSEL:2; /*!< bit: 3.. 4 Conversion Result Resolution */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t WINMODE:3; /*!< bit: 8..10 Window Monitor Mode */ - uint16_t WINSS:1; /*!< bit: 11 Window Single Sample */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_CTRLB_OFFSET 0x06 /**< \brief (ADC_CTRLB offset) Control B */ -#define ADC_CTRLB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLB reset_value) Control B */ - -#define ADC_CTRLB_LEFTADJ_Pos 0 /**< \brief (ADC_CTRLB) Left-Adjusted Result */ -#define ADC_CTRLB_LEFTADJ (_U_(0x1) << ADC_CTRLB_LEFTADJ_Pos) -#define ADC_CTRLB_FREERUN_Pos 1 /**< \brief (ADC_CTRLB) Free Running Mode */ -#define ADC_CTRLB_FREERUN (_U_(0x1) << ADC_CTRLB_FREERUN_Pos) -#define ADC_CTRLB_CORREN_Pos 2 /**< \brief (ADC_CTRLB) Digital Correction Logic Enable */ -#define ADC_CTRLB_CORREN (_U_(0x1) << ADC_CTRLB_CORREN_Pos) -#define ADC_CTRLB_RESSEL_Pos 3 /**< \brief (ADC_CTRLB) Conversion Result Resolution */ -#define ADC_CTRLB_RESSEL_Msk (_U_(0x3) << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL(value) (ADC_CTRLB_RESSEL_Msk & ((value) << ADC_CTRLB_RESSEL_Pos)) -#define ADC_CTRLB_RESSEL_12BIT_Val _U_(0x0) /**< \brief (ADC_CTRLB) 12-bit result */ -#define ADC_CTRLB_RESSEL_16BIT_Val _U_(0x1) /**< \brief (ADC_CTRLB) For averaging mode output */ -#define ADC_CTRLB_RESSEL_10BIT_Val _U_(0x2) /**< \brief (ADC_CTRLB) 10-bit result */ -#define ADC_CTRLB_RESSEL_8BIT_Val _U_(0x3) /**< \brief (ADC_CTRLB) 8-bit result */ -#define ADC_CTRLB_RESSEL_12BIT (ADC_CTRLB_RESSEL_12BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL_16BIT (ADC_CTRLB_RESSEL_16BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL_10BIT (ADC_CTRLB_RESSEL_10BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_RESSEL_8BIT (ADC_CTRLB_RESSEL_8BIT_Val << ADC_CTRLB_RESSEL_Pos) -#define ADC_CTRLB_WINMODE_Pos 8 /**< \brief (ADC_CTRLB) Window Monitor Mode */ -#define ADC_CTRLB_WINMODE_Msk (_U_(0x7) << ADC_CTRLB_WINMODE_Pos) -#define ADC_CTRLB_WINMODE(value) (ADC_CTRLB_WINMODE_Msk & ((value) << ADC_CTRLB_WINMODE_Pos)) -#define ADC_CTRLB_WINMODE_DISABLE_Val _U_(0x0) /**< \brief (ADC_CTRLB) No window mode (default) */ -#define ADC_CTRLB_WINMODE_MODE1_Val _U_(0x1) /**< \brief (ADC_CTRLB) RESULT > WINLT */ -#define ADC_CTRLB_WINMODE_MODE2_Val _U_(0x2) /**< \brief (ADC_CTRLB) RESULT < WINUT */ -#define ADC_CTRLB_WINMODE_MODE3_Val _U_(0x3) /**< \brief (ADC_CTRLB) WINLT < RESULT < WINUT */ -#define ADC_CTRLB_WINMODE_MODE4_Val _U_(0x4) /**< \brief (ADC_CTRLB) !(WINLT < RESULT < WINUT) */ -#define ADC_CTRLB_WINMODE_DISABLE (ADC_CTRLB_WINMODE_DISABLE_Val << ADC_CTRLB_WINMODE_Pos) -#define ADC_CTRLB_WINMODE_MODE1 (ADC_CTRLB_WINMODE_MODE1_Val << ADC_CTRLB_WINMODE_Pos) -#define ADC_CTRLB_WINMODE_MODE2 (ADC_CTRLB_WINMODE_MODE2_Val << ADC_CTRLB_WINMODE_Pos) -#define ADC_CTRLB_WINMODE_MODE3 (ADC_CTRLB_WINMODE_MODE3_Val << ADC_CTRLB_WINMODE_Pos) -#define ADC_CTRLB_WINMODE_MODE4 (ADC_CTRLB_WINMODE_MODE4_Val << ADC_CTRLB_WINMODE_Pos) -#define ADC_CTRLB_WINSS_Pos 11 /**< \brief (ADC_CTRLB) Window Single Sample */ -#define ADC_CTRLB_WINSS (_U_(0x1) << ADC_CTRLB_WINSS_Pos) -#define ADC_CTRLB_MASK _U_(0x0F1F) /**< \brief (ADC_CTRLB) MASK Register */ - -/* -------- ADC_REFCTRL : (ADC Offset: 0x08) (R/W 8) Reference Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t REFSEL:4; /*!< bit: 0.. 3 Reference Selection */ - uint8_t :3; /*!< bit: 4.. 6 Reserved */ - uint8_t REFCOMP:1; /*!< bit: 7 Reference Buffer Offset Compensation Enable */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_REFCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_REFCTRL_OFFSET 0x08 /**< \brief (ADC_REFCTRL offset) Reference Control */ -#define ADC_REFCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_REFCTRL reset_value) Reference Control */ - -#define ADC_REFCTRL_REFSEL_Pos 0 /**< \brief (ADC_REFCTRL) Reference Selection */ -#define ADC_REFCTRL_REFSEL_Msk (_U_(0xF) << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL(value) (ADC_REFCTRL_REFSEL_Msk & ((value) << ADC_REFCTRL_REFSEL_Pos)) -#define ADC_REFCTRL_REFSEL_INTREF_Val _U_(0x0) /**< \brief (ADC_REFCTRL) Internal Bandgap Reference */ -#define ADC_REFCTRL_REFSEL_INTVCC0_Val _U_(0x2) /**< \brief (ADC_REFCTRL) 1/2 VDDANA */ -#define ADC_REFCTRL_REFSEL_INTVCC1_Val _U_(0x3) /**< \brief (ADC_REFCTRL) VDDANA */ -#define ADC_REFCTRL_REFSEL_AREFA_Val _U_(0x4) /**< \brief (ADC_REFCTRL) External Reference */ -#define ADC_REFCTRL_REFSEL_AREFB_Val _U_(0x5) /**< \brief (ADC_REFCTRL) External Reference */ -#define ADC_REFCTRL_REFSEL_AREFC_Val _U_(0x6) /**< \brief (ADC_REFCTRL) External Reference (only on ADC1) */ -#define ADC_REFCTRL_REFSEL_INTREF (ADC_REFCTRL_REFSEL_INTREF_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_INTVCC0 (ADC_REFCTRL_REFSEL_INTVCC0_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_INTVCC1 (ADC_REFCTRL_REFSEL_INTVCC1_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_AREFA (ADC_REFCTRL_REFSEL_AREFA_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_AREFB (ADC_REFCTRL_REFSEL_AREFB_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFSEL_AREFC (ADC_REFCTRL_REFSEL_AREFC_Val << ADC_REFCTRL_REFSEL_Pos) -#define ADC_REFCTRL_REFCOMP_Pos 7 /**< \brief (ADC_REFCTRL) Reference Buffer Offset Compensation Enable */ -#define ADC_REFCTRL_REFCOMP (_U_(0x1) << ADC_REFCTRL_REFCOMP_Pos) -#define ADC_REFCTRL_MASK _U_(0x8F) /**< \brief (ADC_REFCTRL) MASK Register */ - -/* -------- ADC_AVGCTRL : (ADC Offset: 0x0A) (R/W 8) Average Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SAMPLENUM:4; /*!< bit: 0.. 3 Number of Samples to be Collected */ - uint8_t ADJRES:3; /*!< bit: 4.. 6 Adjusting Result / Division Coefficient */ - uint8_t :1; /*!< bit: 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_AVGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_AVGCTRL_OFFSET 0x0A /**< \brief (ADC_AVGCTRL offset) Average Control */ -#define ADC_AVGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_AVGCTRL reset_value) Average Control */ - -#define ADC_AVGCTRL_SAMPLENUM_Pos 0 /**< \brief (ADC_AVGCTRL) Number of Samples to be Collected */ -#define ADC_AVGCTRL_SAMPLENUM_Msk (_U_(0xF) << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM(value) (ADC_AVGCTRL_SAMPLENUM_Msk & ((value) << ADC_AVGCTRL_SAMPLENUM_Pos)) -#define ADC_AVGCTRL_SAMPLENUM_1_Val _U_(0x0) /**< \brief (ADC_AVGCTRL) 1 sample */ -#define ADC_AVGCTRL_SAMPLENUM_2_Val _U_(0x1) /**< \brief (ADC_AVGCTRL) 2 samples */ -#define ADC_AVGCTRL_SAMPLENUM_4_Val _U_(0x2) /**< \brief (ADC_AVGCTRL) 4 samples */ -#define ADC_AVGCTRL_SAMPLENUM_8_Val _U_(0x3) /**< \brief (ADC_AVGCTRL) 8 samples */ -#define ADC_AVGCTRL_SAMPLENUM_16_Val _U_(0x4) /**< \brief (ADC_AVGCTRL) 16 samples */ -#define ADC_AVGCTRL_SAMPLENUM_32_Val _U_(0x5) /**< \brief (ADC_AVGCTRL) 32 samples */ -#define ADC_AVGCTRL_SAMPLENUM_64_Val _U_(0x6) /**< \brief (ADC_AVGCTRL) 64 samples */ -#define ADC_AVGCTRL_SAMPLENUM_128_Val _U_(0x7) /**< \brief (ADC_AVGCTRL) 128 samples */ -#define ADC_AVGCTRL_SAMPLENUM_256_Val _U_(0x8) /**< \brief (ADC_AVGCTRL) 256 samples */ -#define ADC_AVGCTRL_SAMPLENUM_512_Val _U_(0x9) /**< \brief (ADC_AVGCTRL) 512 samples */ -#define ADC_AVGCTRL_SAMPLENUM_1024_Val _U_(0xA) /**< \brief (ADC_AVGCTRL) 1024 samples */ -#define ADC_AVGCTRL_SAMPLENUM_1 (ADC_AVGCTRL_SAMPLENUM_1_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_2 (ADC_AVGCTRL_SAMPLENUM_2_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_4 (ADC_AVGCTRL_SAMPLENUM_4_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_8 (ADC_AVGCTRL_SAMPLENUM_8_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_16 (ADC_AVGCTRL_SAMPLENUM_16_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_32 (ADC_AVGCTRL_SAMPLENUM_32_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_64 (ADC_AVGCTRL_SAMPLENUM_64_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_128 (ADC_AVGCTRL_SAMPLENUM_128_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_256 (ADC_AVGCTRL_SAMPLENUM_256_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_512 (ADC_AVGCTRL_SAMPLENUM_512_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_SAMPLENUM_1024 (ADC_AVGCTRL_SAMPLENUM_1024_Val << ADC_AVGCTRL_SAMPLENUM_Pos) -#define ADC_AVGCTRL_ADJRES_Pos 4 /**< \brief (ADC_AVGCTRL) Adjusting Result / Division Coefficient */ -#define ADC_AVGCTRL_ADJRES_Msk (_U_(0x7) << ADC_AVGCTRL_ADJRES_Pos) -#define ADC_AVGCTRL_ADJRES(value) (ADC_AVGCTRL_ADJRES_Msk & ((value) << ADC_AVGCTRL_ADJRES_Pos)) -#define ADC_AVGCTRL_MASK _U_(0x7F) /**< \brief (ADC_AVGCTRL) MASK Register */ - -/* -------- ADC_SAMPCTRL : (ADC Offset: 0x0B) (R/W 8) Sample Time Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SAMPLEN:6; /*!< bit: 0.. 5 Sampling Time Length */ - uint8_t :1; /*!< bit: 6 Reserved */ - uint8_t OFFCOMP:1; /*!< bit: 7 Comparator Offset Compensation Enable */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_SAMPCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_SAMPCTRL_OFFSET 0x0B /**< \brief (ADC_SAMPCTRL offset) Sample Time Control */ -#define ADC_SAMPCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_SAMPCTRL reset_value) Sample Time Control */ - -#define ADC_SAMPCTRL_SAMPLEN_Pos 0 /**< \brief (ADC_SAMPCTRL) Sampling Time Length */ -#define ADC_SAMPCTRL_SAMPLEN_Msk (_U_(0x3F) << ADC_SAMPCTRL_SAMPLEN_Pos) -#define ADC_SAMPCTRL_SAMPLEN(value) (ADC_SAMPCTRL_SAMPLEN_Msk & ((value) << ADC_SAMPCTRL_SAMPLEN_Pos)) -#define ADC_SAMPCTRL_OFFCOMP_Pos 7 /**< \brief (ADC_SAMPCTRL) Comparator Offset Compensation Enable */ -#define ADC_SAMPCTRL_OFFCOMP (_U_(0x1) << ADC_SAMPCTRL_OFFCOMP_Pos) -#define ADC_SAMPCTRL_MASK _U_(0xBF) /**< \brief (ADC_SAMPCTRL) MASK Register */ - -/* -------- ADC_WINLT : (ADC Offset: 0x0C) (R/W 16) Window Monitor Lower Threshold -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t WINLT:16; /*!< bit: 0..15 Window Lower Threshold */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_WINLT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_WINLT_OFFSET 0x0C /**< \brief (ADC_WINLT offset) Window Monitor Lower Threshold */ -#define ADC_WINLT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINLT reset_value) Window Monitor Lower Threshold */ - -#define ADC_WINLT_WINLT_Pos 0 /**< \brief (ADC_WINLT) Window Lower Threshold */ -#define ADC_WINLT_WINLT_Msk (_U_(0xFFFF) << ADC_WINLT_WINLT_Pos) -#define ADC_WINLT_WINLT(value) (ADC_WINLT_WINLT_Msk & ((value) << ADC_WINLT_WINLT_Pos)) -#define ADC_WINLT_MASK _U_(0xFFFF) /**< \brief (ADC_WINLT) MASK Register */ - -/* -------- ADC_WINUT : (ADC Offset: 0x0E) (R/W 16) Window Monitor Upper Threshold -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t WINUT:16; /*!< bit: 0..15 Window Upper Threshold */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_WINUT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_WINUT_OFFSET 0x0E /**< \brief (ADC_WINUT offset) Window Monitor Upper Threshold */ -#define ADC_WINUT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINUT reset_value) Window Monitor Upper Threshold */ - -#define ADC_WINUT_WINUT_Pos 0 /**< \brief (ADC_WINUT) Window Upper Threshold */ -#define ADC_WINUT_WINUT_Msk (_U_(0xFFFF) << ADC_WINUT_WINUT_Pos) -#define ADC_WINUT_WINUT(value) (ADC_WINUT_WINUT_Msk & ((value) << ADC_WINUT_WINUT_Pos)) -#define ADC_WINUT_MASK _U_(0xFFFF) /**< \brief (ADC_WINUT) MASK Register */ - -/* -------- ADC_GAINCORR : (ADC Offset: 0x10) (R/W 16) Gain Correction -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t GAINCORR:12; /*!< bit: 0..11 Gain Correction Value */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_GAINCORR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_GAINCORR_OFFSET 0x10 /**< \brief (ADC_GAINCORR offset) Gain Correction */ -#define ADC_GAINCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_GAINCORR reset_value) Gain Correction */ - -#define ADC_GAINCORR_GAINCORR_Pos 0 /**< \brief (ADC_GAINCORR) Gain Correction Value */ -#define ADC_GAINCORR_GAINCORR_Msk (_U_(0xFFF) << ADC_GAINCORR_GAINCORR_Pos) -#define ADC_GAINCORR_GAINCORR(value) (ADC_GAINCORR_GAINCORR_Msk & ((value) << ADC_GAINCORR_GAINCORR_Pos)) -#define ADC_GAINCORR_MASK _U_(0x0FFF) /**< \brief (ADC_GAINCORR) MASK Register */ - -/* -------- ADC_OFFSETCORR : (ADC Offset: 0x12) (R/W 16) Offset Correction -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t OFFSETCORR:12; /*!< bit: 0..11 Offset Correction Value */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_OFFSETCORR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_OFFSETCORR_OFFSET 0x12 /**< \brief (ADC_OFFSETCORR offset) Offset Correction */ -#define ADC_OFFSETCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_OFFSETCORR reset_value) Offset Correction */ - -#define ADC_OFFSETCORR_OFFSETCORR_Pos 0 /**< \brief (ADC_OFFSETCORR) Offset Correction Value */ -#define ADC_OFFSETCORR_OFFSETCORR_Msk (_U_(0xFFF) << ADC_OFFSETCORR_OFFSETCORR_Pos) -#define ADC_OFFSETCORR_OFFSETCORR(value) (ADC_OFFSETCORR_OFFSETCORR_Msk & ((value) << ADC_OFFSETCORR_OFFSETCORR_Pos)) -#define ADC_OFFSETCORR_MASK _U_(0x0FFF) /**< \brief (ADC_OFFSETCORR) MASK Register */ - -/* -------- ADC_SWTRIG : (ADC Offset: 0x14) (R/W 8) Software Trigger -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t FLUSH:1; /*!< bit: 0 ADC Conversion Flush */ - uint8_t START:1; /*!< bit: 1 Start ADC Conversion */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_SWTRIG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_SWTRIG_OFFSET 0x14 /**< \brief (ADC_SWTRIG offset) Software Trigger */ -#define ADC_SWTRIG_RESETVALUE _U_(0x00) /**< \brief (ADC_SWTRIG reset_value) Software Trigger */ - -#define ADC_SWTRIG_FLUSH_Pos 0 /**< \brief (ADC_SWTRIG) ADC Conversion Flush */ -#define ADC_SWTRIG_FLUSH (_U_(0x1) << ADC_SWTRIG_FLUSH_Pos) -#define ADC_SWTRIG_START_Pos 1 /**< \brief (ADC_SWTRIG) Start ADC Conversion */ -#define ADC_SWTRIG_START (_U_(0x1) << ADC_SWTRIG_START_Pos) -#define ADC_SWTRIG_MASK _U_(0x03) /**< \brief (ADC_SWTRIG) MASK Register */ - -/* -------- ADC_INTENCLR : (ADC Offset: 0x2C) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Disable */ - uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Disable */ - uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Disable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INTENCLR_OFFSET 0x2C /**< \brief (ADC_INTENCLR offset) Interrupt Enable Clear */ -#define ADC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENCLR reset_value) Interrupt Enable Clear */ - -#define ADC_INTENCLR_RESRDY_Pos 0 /**< \brief (ADC_INTENCLR) Result Ready Interrupt Disable */ -#define ADC_INTENCLR_RESRDY (_U_(0x1) << ADC_INTENCLR_RESRDY_Pos) -#define ADC_INTENCLR_OVERRUN_Pos 1 /**< \brief (ADC_INTENCLR) Overrun Interrupt Disable */ -#define ADC_INTENCLR_OVERRUN (_U_(0x1) << ADC_INTENCLR_OVERRUN_Pos) -#define ADC_INTENCLR_WINMON_Pos 2 /**< \brief (ADC_INTENCLR) Window Monitor Interrupt Disable */ -#define ADC_INTENCLR_WINMON (_U_(0x1) << ADC_INTENCLR_WINMON_Pos) -#define ADC_INTENCLR_MASK _U_(0x07) /**< \brief (ADC_INTENCLR) MASK Register */ - -/* -------- ADC_INTENSET : (ADC Offset: 0x2D) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ - uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ - uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INTENSET_OFFSET 0x2D /**< \brief (ADC_INTENSET offset) Interrupt Enable Set */ -#define ADC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENSET reset_value) Interrupt Enable Set */ - -#define ADC_INTENSET_RESRDY_Pos 0 /**< \brief (ADC_INTENSET) Result Ready Interrupt Enable */ -#define ADC_INTENSET_RESRDY (_U_(0x1) << ADC_INTENSET_RESRDY_Pos) -#define ADC_INTENSET_OVERRUN_Pos 1 /**< \brief (ADC_INTENSET) Overrun Interrupt Enable */ -#define ADC_INTENSET_OVERRUN (_U_(0x1) << ADC_INTENSET_OVERRUN_Pos) -#define ADC_INTENSET_WINMON_Pos 2 /**< \brief (ADC_INTENSET) Window Monitor Interrupt Enable */ -#define ADC_INTENSET_WINMON (_U_(0x1) << ADC_INTENSET_WINMON_Pos) -#define ADC_INTENSET_MASK _U_(0x07) /**< \brief (ADC_INTENSET) MASK Register */ - -/* -------- ADC_INTFLAG : (ADC Offset: 0x2E) (R/W 8) Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Flag */ - __I uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Flag */ - __I uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Flag */ - __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_INTFLAG_OFFSET 0x2E /**< \brief (ADC_INTFLAG offset) Interrupt Flag Status and Clear */ -#define ADC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (ADC_INTFLAG reset_value) Interrupt Flag Status and Clear */ - -#define ADC_INTFLAG_RESRDY_Pos 0 /**< \brief (ADC_INTFLAG) Result Ready Interrupt Flag */ -#define ADC_INTFLAG_RESRDY (_U_(0x1) << ADC_INTFLAG_RESRDY_Pos) -#define ADC_INTFLAG_OVERRUN_Pos 1 /**< \brief (ADC_INTFLAG) Overrun Interrupt Flag */ -#define ADC_INTFLAG_OVERRUN (_U_(0x1) << ADC_INTFLAG_OVERRUN_Pos) -#define ADC_INTFLAG_WINMON_Pos 2 /**< \brief (ADC_INTFLAG) Window Monitor Interrupt Flag */ -#define ADC_INTFLAG_WINMON (_U_(0x1) << ADC_INTFLAG_WINMON_Pos) -#define ADC_INTFLAG_MASK _U_(0x07) /**< \brief (ADC_INTFLAG) MASK Register */ - -/* -------- ADC_STATUS : (ADC Offset: 0x2F) (R/ 8) Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t ADCBUSY:1; /*!< bit: 0 ADC Busy Status */ - uint8_t :1; /*!< bit: 1 Reserved */ - uint8_t WCC:6; /*!< bit: 2.. 7 Window Comparator Counter */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} ADC_STATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_STATUS_OFFSET 0x2F /**< \brief (ADC_STATUS offset) Status */ -#define ADC_STATUS_RESETVALUE _U_(0x00) /**< \brief (ADC_STATUS reset_value) Status */ - -#define ADC_STATUS_ADCBUSY_Pos 0 /**< \brief (ADC_STATUS) ADC Busy Status */ -#define ADC_STATUS_ADCBUSY (_U_(0x1) << ADC_STATUS_ADCBUSY_Pos) -#define ADC_STATUS_WCC_Pos 2 /**< \brief (ADC_STATUS) Window Comparator Counter */ -#define ADC_STATUS_WCC_Msk (_U_(0x3F) << ADC_STATUS_WCC_Pos) -#define ADC_STATUS_WCC(value) (ADC_STATUS_WCC_Msk & ((value) << ADC_STATUS_WCC_Pos)) -#define ADC_STATUS_MASK _U_(0xFD) /**< \brief (ADC_STATUS) MASK Register */ - -/* -------- ADC_SYNCBUSY : (ADC Offset: 0x30) (R/ 32) Synchronization Busy -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWRST:1; /*!< bit: 0 SWRST Synchronization Busy */ - uint32_t ENABLE:1; /*!< bit: 1 ENABLE Synchronization Busy */ - uint32_t INPUTCTRL:1; /*!< bit: 2 Input Control Synchronization Busy */ - uint32_t CTRLB:1; /*!< bit: 3 Control B Synchronization Busy */ - uint32_t REFCTRL:1; /*!< bit: 4 Reference Control Synchronization Busy */ - uint32_t AVGCTRL:1; /*!< bit: 5 Average Control Synchronization Busy */ - uint32_t SAMPCTRL:1; /*!< bit: 6 Sampling Time Control Synchronization Busy */ - uint32_t WINLT:1; /*!< bit: 7 Window Monitor Lower Threshold Synchronization Busy */ - uint32_t WINUT:1; /*!< bit: 8 Window Monitor Upper Threshold Synchronization Busy */ - uint32_t GAINCORR:1; /*!< bit: 9 Gain Correction Synchronization Busy */ - uint32_t OFFSETCORR:1; /*!< bit: 10 Offset Correction Synchronization Busy */ - uint32_t SWTRIG:1; /*!< bit: 11 Software Trigger Synchronization Busy */ - uint32_t :20; /*!< bit: 12..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} ADC_SYNCBUSY_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_SYNCBUSY_OFFSET 0x30 /**< \brief (ADC_SYNCBUSY offset) Synchronization Busy */ -#define ADC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (ADC_SYNCBUSY reset_value) Synchronization Busy */ - -#define ADC_SYNCBUSY_SWRST_Pos 0 /**< \brief (ADC_SYNCBUSY) SWRST Synchronization Busy */ -#define ADC_SYNCBUSY_SWRST (_U_(0x1) << ADC_SYNCBUSY_SWRST_Pos) -#define ADC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (ADC_SYNCBUSY) ENABLE Synchronization Busy */ -#define ADC_SYNCBUSY_ENABLE (_U_(0x1) << ADC_SYNCBUSY_ENABLE_Pos) -#define ADC_SYNCBUSY_INPUTCTRL_Pos 2 /**< \brief (ADC_SYNCBUSY) Input Control Synchronization Busy */ -#define ADC_SYNCBUSY_INPUTCTRL (_U_(0x1) << ADC_SYNCBUSY_INPUTCTRL_Pos) -#define ADC_SYNCBUSY_CTRLB_Pos 3 /**< \brief (ADC_SYNCBUSY) Control B Synchronization Busy */ -#define ADC_SYNCBUSY_CTRLB (_U_(0x1) << ADC_SYNCBUSY_CTRLB_Pos) -#define ADC_SYNCBUSY_REFCTRL_Pos 4 /**< \brief (ADC_SYNCBUSY) Reference Control Synchronization Busy */ -#define ADC_SYNCBUSY_REFCTRL (_U_(0x1) << ADC_SYNCBUSY_REFCTRL_Pos) -#define ADC_SYNCBUSY_AVGCTRL_Pos 5 /**< \brief (ADC_SYNCBUSY) Average Control Synchronization Busy */ -#define ADC_SYNCBUSY_AVGCTRL (_U_(0x1) << ADC_SYNCBUSY_AVGCTRL_Pos) -#define ADC_SYNCBUSY_SAMPCTRL_Pos 6 /**< \brief (ADC_SYNCBUSY) Sampling Time Control Synchronization Busy */ -#define ADC_SYNCBUSY_SAMPCTRL (_U_(0x1) << ADC_SYNCBUSY_SAMPCTRL_Pos) -#define ADC_SYNCBUSY_WINLT_Pos 7 /**< \brief (ADC_SYNCBUSY) Window Monitor Lower Threshold Synchronization Busy */ -#define ADC_SYNCBUSY_WINLT (_U_(0x1) << ADC_SYNCBUSY_WINLT_Pos) -#define ADC_SYNCBUSY_WINUT_Pos 8 /**< \brief (ADC_SYNCBUSY) Window Monitor Upper Threshold Synchronization Busy */ -#define ADC_SYNCBUSY_WINUT (_U_(0x1) << ADC_SYNCBUSY_WINUT_Pos) -#define ADC_SYNCBUSY_GAINCORR_Pos 9 /**< \brief (ADC_SYNCBUSY) Gain Correction Synchronization Busy */ -#define ADC_SYNCBUSY_GAINCORR (_U_(0x1) << ADC_SYNCBUSY_GAINCORR_Pos) -#define ADC_SYNCBUSY_OFFSETCORR_Pos 10 /**< \brief (ADC_SYNCBUSY) Offset Correction Synchronization Busy */ -#define ADC_SYNCBUSY_OFFSETCORR (_U_(0x1) << ADC_SYNCBUSY_OFFSETCORR_Pos) -#define ADC_SYNCBUSY_SWTRIG_Pos 11 /**< \brief (ADC_SYNCBUSY) Software Trigger Synchronization Busy */ -#define ADC_SYNCBUSY_SWTRIG (_U_(0x1) << ADC_SYNCBUSY_SWTRIG_Pos) -#define ADC_SYNCBUSY_MASK _U_(0x00000FFF) /**< \brief (ADC_SYNCBUSY) MASK Register */ - -/* -------- ADC_DSEQDATA : (ADC Offset: 0x34) ( /W 32) DMA Sequencial Data -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t DATA:32; /*!< bit: 0..31 DMA Sequential Data */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} ADC_DSEQDATA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_DSEQDATA_OFFSET 0x34 /**< \brief (ADC_DSEQDATA offset) DMA Sequencial Data */ -#define ADC_DSEQDATA_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQDATA reset_value) DMA Sequencial Data */ - -#define ADC_DSEQDATA_DATA_Pos 0 /**< \brief (ADC_DSEQDATA) DMA Sequential Data */ -#define ADC_DSEQDATA_DATA_Msk (_U_(0xFFFFFFFF) << ADC_DSEQDATA_DATA_Pos) -#define ADC_DSEQDATA_DATA(value) (ADC_DSEQDATA_DATA_Msk & ((value) << ADC_DSEQDATA_DATA_Pos)) -#define ADC_DSEQDATA_MASK _U_(0xFFFFFFFF) /**< \brief (ADC_DSEQDATA) MASK Register */ - -/* -------- ADC_DSEQCTRL : (ADC Offset: 0x38) (R/W 32) DMA Sequential Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t INPUTCTRL:1; /*!< bit: 0 Input Control */ - uint32_t CTRLB:1; /*!< bit: 1 Control B */ - uint32_t REFCTRL:1; /*!< bit: 2 Reference Control */ - uint32_t AVGCTRL:1; /*!< bit: 3 Average Control */ - uint32_t SAMPCTRL:1; /*!< bit: 4 Sampling Time Control */ - uint32_t WINLT:1; /*!< bit: 5 Window Monitor Lower Threshold */ - uint32_t WINUT:1; /*!< bit: 6 Window Monitor Upper Threshold */ - uint32_t GAINCORR:1; /*!< bit: 7 Gain Correction */ - uint32_t OFFSETCORR:1; /*!< bit: 8 Offset Correction */ - uint32_t :22; /*!< bit: 9..30 Reserved */ - uint32_t AUTOSTART:1; /*!< bit: 31 ADC Auto-Start Conversion */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} ADC_DSEQCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_DSEQCTRL_OFFSET 0x38 /**< \brief (ADC_DSEQCTRL offset) DMA Sequential Control */ -#define ADC_DSEQCTRL_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQCTRL reset_value) DMA Sequential Control */ - -#define ADC_DSEQCTRL_INPUTCTRL_Pos 0 /**< \brief (ADC_DSEQCTRL) Input Control */ -#define ADC_DSEQCTRL_INPUTCTRL (_U_(0x1) << ADC_DSEQCTRL_INPUTCTRL_Pos) -#define ADC_DSEQCTRL_CTRLB_Pos 1 /**< \brief (ADC_DSEQCTRL) Control B */ -#define ADC_DSEQCTRL_CTRLB (_U_(0x1) << ADC_DSEQCTRL_CTRLB_Pos) -#define ADC_DSEQCTRL_REFCTRL_Pos 2 /**< \brief (ADC_DSEQCTRL) Reference Control */ -#define ADC_DSEQCTRL_REFCTRL (_U_(0x1) << ADC_DSEQCTRL_REFCTRL_Pos) -#define ADC_DSEQCTRL_AVGCTRL_Pos 3 /**< \brief (ADC_DSEQCTRL) Average Control */ -#define ADC_DSEQCTRL_AVGCTRL (_U_(0x1) << ADC_DSEQCTRL_AVGCTRL_Pos) -#define ADC_DSEQCTRL_SAMPCTRL_Pos 4 /**< \brief (ADC_DSEQCTRL) Sampling Time Control */ -#define ADC_DSEQCTRL_SAMPCTRL (_U_(0x1) << ADC_DSEQCTRL_SAMPCTRL_Pos) -#define ADC_DSEQCTRL_WINLT_Pos 5 /**< \brief (ADC_DSEQCTRL) Window Monitor Lower Threshold */ -#define ADC_DSEQCTRL_WINLT (_U_(0x1) << ADC_DSEQCTRL_WINLT_Pos) -#define ADC_DSEQCTRL_WINUT_Pos 6 /**< \brief (ADC_DSEQCTRL) Window Monitor Upper Threshold */ -#define ADC_DSEQCTRL_WINUT (_U_(0x1) << ADC_DSEQCTRL_WINUT_Pos) -#define ADC_DSEQCTRL_GAINCORR_Pos 7 /**< \brief (ADC_DSEQCTRL) Gain Correction */ -#define ADC_DSEQCTRL_GAINCORR (_U_(0x1) << ADC_DSEQCTRL_GAINCORR_Pos) -#define ADC_DSEQCTRL_OFFSETCORR_Pos 8 /**< \brief (ADC_DSEQCTRL) Offset Correction */ -#define ADC_DSEQCTRL_OFFSETCORR (_U_(0x1) << ADC_DSEQCTRL_OFFSETCORR_Pos) -#define ADC_DSEQCTRL_AUTOSTART_Pos 31 /**< \brief (ADC_DSEQCTRL) ADC Auto-Start Conversion */ -#define ADC_DSEQCTRL_AUTOSTART (_U_(0x1) << ADC_DSEQCTRL_AUTOSTART_Pos) -#define ADC_DSEQCTRL_MASK _U_(0x800001FF) /**< \brief (ADC_DSEQCTRL) MASK Register */ - -/* -------- ADC_DSEQSTAT : (ADC Offset: 0x3C) (R/ 32) DMA Sequencial Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t INPUTCTRL:1; /*!< bit: 0 Input Control */ - uint32_t CTRLB:1; /*!< bit: 1 Control B */ - uint32_t REFCTRL:1; /*!< bit: 2 Reference Control */ - uint32_t AVGCTRL:1; /*!< bit: 3 Average Control */ - uint32_t SAMPCTRL:1; /*!< bit: 4 Sampling Time Control */ - uint32_t WINLT:1; /*!< bit: 5 Window Monitor Lower Threshold */ - uint32_t WINUT:1; /*!< bit: 6 Window Monitor Upper Threshold */ - uint32_t GAINCORR:1; /*!< bit: 7 Gain Correction */ - uint32_t OFFSETCORR:1; /*!< bit: 8 Offset Correction */ - uint32_t :22; /*!< bit: 9..30 Reserved */ - uint32_t BUSY:1; /*!< bit: 31 DMA Sequencing Busy */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} ADC_DSEQSTAT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_DSEQSTAT_OFFSET 0x3C /**< \brief (ADC_DSEQSTAT offset) DMA Sequencial Status */ -#define ADC_DSEQSTAT_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQSTAT reset_value) DMA Sequencial Status */ - -#define ADC_DSEQSTAT_INPUTCTRL_Pos 0 /**< \brief (ADC_DSEQSTAT) Input Control */ -#define ADC_DSEQSTAT_INPUTCTRL (_U_(0x1) << ADC_DSEQSTAT_INPUTCTRL_Pos) -#define ADC_DSEQSTAT_CTRLB_Pos 1 /**< \brief (ADC_DSEQSTAT) Control B */ -#define ADC_DSEQSTAT_CTRLB (_U_(0x1) << ADC_DSEQSTAT_CTRLB_Pos) -#define ADC_DSEQSTAT_REFCTRL_Pos 2 /**< \brief (ADC_DSEQSTAT) Reference Control */ -#define ADC_DSEQSTAT_REFCTRL (_U_(0x1) << ADC_DSEQSTAT_REFCTRL_Pos) -#define ADC_DSEQSTAT_AVGCTRL_Pos 3 /**< \brief (ADC_DSEQSTAT) Average Control */ -#define ADC_DSEQSTAT_AVGCTRL (_U_(0x1) << ADC_DSEQSTAT_AVGCTRL_Pos) -#define ADC_DSEQSTAT_SAMPCTRL_Pos 4 /**< \brief (ADC_DSEQSTAT) Sampling Time Control */ -#define ADC_DSEQSTAT_SAMPCTRL (_U_(0x1) << ADC_DSEQSTAT_SAMPCTRL_Pos) -#define ADC_DSEQSTAT_WINLT_Pos 5 /**< \brief (ADC_DSEQSTAT) Window Monitor Lower Threshold */ -#define ADC_DSEQSTAT_WINLT (_U_(0x1) << ADC_DSEQSTAT_WINLT_Pos) -#define ADC_DSEQSTAT_WINUT_Pos 6 /**< \brief (ADC_DSEQSTAT) Window Monitor Upper Threshold */ -#define ADC_DSEQSTAT_WINUT (_U_(0x1) << ADC_DSEQSTAT_WINUT_Pos) -#define ADC_DSEQSTAT_GAINCORR_Pos 7 /**< \brief (ADC_DSEQSTAT) Gain Correction */ -#define ADC_DSEQSTAT_GAINCORR (_U_(0x1) << ADC_DSEQSTAT_GAINCORR_Pos) -#define ADC_DSEQSTAT_OFFSETCORR_Pos 8 /**< \brief (ADC_DSEQSTAT) Offset Correction */ -#define ADC_DSEQSTAT_OFFSETCORR (_U_(0x1) << ADC_DSEQSTAT_OFFSETCORR_Pos) -#define ADC_DSEQSTAT_BUSY_Pos 31 /**< \brief (ADC_DSEQSTAT) DMA Sequencing Busy */ -#define ADC_DSEQSTAT_BUSY (_U_(0x1) << ADC_DSEQSTAT_BUSY_Pos) -#define ADC_DSEQSTAT_MASK _U_(0x800001FF) /**< \brief (ADC_DSEQSTAT) MASK Register */ - -/* -------- ADC_RESULT : (ADC Offset: 0x40) (R/ 16) Result Conversion Value -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t RESULT:16; /*!< bit: 0..15 Result Conversion Value */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_RESULT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_RESULT_OFFSET 0x40 /**< \brief (ADC_RESULT offset) Result Conversion Value */ -#define ADC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESULT reset_value) Result Conversion Value */ - -#define ADC_RESULT_RESULT_Pos 0 /**< \brief (ADC_RESULT) Result Conversion Value */ -#define ADC_RESULT_RESULT_Msk (_U_(0xFFFF) << ADC_RESULT_RESULT_Pos) -#define ADC_RESULT_RESULT(value) (ADC_RESULT_RESULT_Msk & ((value) << ADC_RESULT_RESULT_Pos)) -#define ADC_RESULT_MASK _U_(0xFFFF) /**< \brief (ADC_RESULT) MASK Register */ - -/* -------- ADC_RESS : (ADC Offset: 0x44) (R/ 16) Last Sample Result -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t RESS:16; /*!< bit: 0..15 Last ADC conversion result */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_RESS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_RESS_OFFSET 0x44 /**< \brief (ADC_RESS offset) Last Sample Result */ -#define ADC_RESS_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESS reset_value) Last Sample Result */ - -#define ADC_RESS_RESS_Pos 0 /**< \brief (ADC_RESS) Last ADC conversion result */ -#define ADC_RESS_RESS_Msk (_U_(0xFFFF) << ADC_RESS_RESS_Pos) -#define ADC_RESS_RESS(value) (ADC_RESS_RESS_Msk & ((value) << ADC_RESS_RESS_Pos)) -#define ADC_RESS_MASK _U_(0xFFFF) /**< \brief (ADC_RESS) MASK Register */ - -/* -------- ADC_CALIB : (ADC Offset: 0x48) (R/W 16) Calibration -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t BIASCOMP:3; /*!< bit: 0.. 2 Bias Comparator Scaling */ - uint16_t :1; /*!< bit: 3 Reserved */ - uint16_t BIASR2R:3; /*!< bit: 4.. 6 Bias R2R Ampli scaling */ - uint16_t :1; /*!< bit: 7 Reserved */ - uint16_t BIASREFBUF:3; /*!< bit: 8..10 Bias Reference Buffer Scaling */ - uint16_t :5; /*!< bit: 11..15 Reserved */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} ADC_CALIB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define ADC_CALIB_OFFSET 0x48 /**< \brief (ADC_CALIB offset) Calibration */ -#define ADC_CALIB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CALIB reset_value) Calibration */ - -#define ADC_CALIB_BIASCOMP_Pos 0 /**< \brief (ADC_CALIB) Bias Comparator Scaling */ -#define ADC_CALIB_BIASCOMP_Msk (_U_(0x7) << ADC_CALIB_BIASCOMP_Pos) -#define ADC_CALIB_BIASCOMP(value) (ADC_CALIB_BIASCOMP_Msk & ((value) << ADC_CALIB_BIASCOMP_Pos)) -#define ADC_CALIB_BIASR2R_Pos 4 /**< \brief (ADC_CALIB) Bias R2R Ampli scaling */ -#define ADC_CALIB_BIASR2R_Msk (_U_(0x7) << ADC_CALIB_BIASR2R_Pos) -#define ADC_CALIB_BIASR2R(value) (ADC_CALIB_BIASR2R_Msk & ((value) << ADC_CALIB_BIASR2R_Pos)) -#define ADC_CALIB_BIASREFBUF_Pos 8 /**< \brief (ADC_CALIB) Bias Reference Buffer Scaling */ -#define ADC_CALIB_BIASREFBUF_Msk (_U_(0x7) << ADC_CALIB_BIASREFBUF_Pos) -#define ADC_CALIB_BIASREFBUF(value) (ADC_CALIB_BIASREFBUF_Msk & ((value) << ADC_CALIB_BIASREFBUF_Pos)) -#define ADC_CALIB_MASK _U_(0x0777) /**< \brief (ADC_CALIB) MASK Register */ - -/** \brief ADC hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO ADC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 16) Control A */ - __IO ADC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 8) Event Control */ - __IO ADC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x03 (R/W 8) Debug Control */ - __IO ADC_INPUTCTRL_Type INPUTCTRL; /**< \brief Offset: 0x04 (R/W 16) Input Control */ - __IO ADC_CTRLB_Type CTRLB; /**< \brief Offset: 0x06 (R/W 16) Control B */ - __IO ADC_REFCTRL_Type REFCTRL; /**< \brief Offset: 0x08 (R/W 8) Reference Control */ - RoReg8 Reserved1[0x1]; - __IO ADC_AVGCTRL_Type AVGCTRL; /**< \brief Offset: 0x0A (R/W 8) Average Control */ - __IO ADC_SAMPCTRL_Type SAMPCTRL; /**< \brief Offset: 0x0B (R/W 8) Sample Time Control */ - __IO ADC_WINLT_Type WINLT; /**< \brief Offset: 0x0C (R/W 16) Window Monitor Lower Threshold */ - __IO ADC_WINUT_Type WINUT; /**< \brief Offset: 0x0E (R/W 16) Window Monitor Upper Threshold */ - __IO ADC_GAINCORR_Type GAINCORR; /**< \brief Offset: 0x10 (R/W 16) Gain Correction */ - __IO ADC_OFFSETCORR_Type OFFSETCORR; /**< \brief Offset: 0x12 (R/W 16) Offset Correction */ - __IO ADC_SWTRIG_Type SWTRIG; /**< \brief Offset: 0x14 (R/W 8) Software Trigger */ - RoReg8 Reserved2[0x17]; - __IO ADC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x2C (R/W 8) Interrupt Enable Clear */ - __IO ADC_INTENSET_Type INTENSET; /**< \brief Offset: 0x2D (R/W 8) Interrupt Enable Set */ - __IO ADC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x2E (R/W 8) Interrupt Flag Status and Clear */ - __I ADC_STATUS_Type STATUS; /**< \brief Offset: 0x2F (R/ 8) Status */ - __I ADC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x30 (R/ 32) Synchronization Busy */ - __O ADC_DSEQDATA_Type DSEQDATA; /**< \brief Offset: 0x34 ( /W 32) DMA Sequencial Data */ - __IO ADC_DSEQCTRL_Type DSEQCTRL; /**< \brief Offset: 0x38 (R/W 32) DMA Sequential Control */ - __I ADC_DSEQSTAT_Type DSEQSTAT; /**< \brief Offset: 0x3C (R/ 32) DMA Sequencial Status */ - __I ADC_RESULT_Type RESULT; /**< \brief Offset: 0x40 (R/ 16) Result Conversion Value */ - RoReg8 Reserved3[0x2]; - __I ADC_RESS_Type RESS; /**< \brief Offset: 0x44 (R/ 16) Last Sample Result */ - RoReg8 Reserved4[0x2]; - __IO ADC_CALIB_Type CALIB; /**< \brief Offset: 0x48 (R/W 16) Calibration */ -} Adc; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD51_ADC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for ADC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_ADC_COMPONENT_ +#define _SAMD51_ADC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR ADC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_ADC Analog Digital Converter */ +/*@{*/ + +#define ADC_U2500 +#define REV_ADC 0x100 + +/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 16) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t SWRST:1; /*!< bit: 0 Software Reset */ + uint16_t ENABLE:1; /*!< bit: 1 Enable */ + uint16_t :1; /*!< bit: 2 Reserved */ + uint16_t DUALSEL:2; /*!< bit: 3.. 4 Dual Mode Trigger Selection */ + uint16_t SLAVEEN:1; /*!< bit: 5 Slave Enable */ + uint16_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint16_t ONDEMAND:1; /*!< bit: 7 On Demand Control */ + uint16_t PRESCALER:3; /*!< bit: 8..10 Prescaler Configuration */ + uint16_t :4; /*!< bit: 11..14 Reserved */ + uint16_t R2R:1; /*!< bit: 15 Rail to Rail Operation Enable */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CTRLA_OFFSET 0x00 /**< \brief (ADC_CTRLA offset) Control A */ +#define ADC_CTRLA_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLA reset_value) Control A */ + +#define ADC_CTRLA_SWRST_Pos 0 /**< \brief (ADC_CTRLA) Software Reset */ +#define ADC_CTRLA_SWRST (_U_(0x1) << ADC_CTRLA_SWRST_Pos) +#define ADC_CTRLA_ENABLE_Pos 1 /**< \brief (ADC_CTRLA) Enable */ +#define ADC_CTRLA_ENABLE (_U_(0x1) << ADC_CTRLA_ENABLE_Pos) +#define ADC_CTRLA_DUALSEL_Pos 3 /**< \brief (ADC_CTRLA) Dual Mode Trigger Selection */ +#define ADC_CTRLA_DUALSEL_Msk (_U_(0x3) << ADC_CTRLA_DUALSEL_Pos) +#define ADC_CTRLA_DUALSEL(value) (ADC_CTRLA_DUALSEL_Msk & ((value) << ADC_CTRLA_DUALSEL_Pos)) +#define ADC_CTRLA_DUALSEL_BOTH_Val _U_(0x0) /**< \brief (ADC_CTRLA) Start event or software trigger will start a conversion on both ADCs */ +#define ADC_CTRLA_DUALSEL_INTERLEAVE_Val _U_(0x1) /**< \brief (ADC_CTRLA) START event or software trigger will alternatingly start a conversion on ADC0 and ADC1 */ +#define ADC_CTRLA_DUALSEL_BOTH (ADC_CTRLA_DUALSEL_BOTH_Val << ADC_CTRLA_DUALSEL_Pos) +#define ADC_CTRLA_DUALSEL_INTERLEAVE (ADC_CTRLA_DUALSEL_INTERLEAVE_Val << ADC_CTRLA_DUALSEL_Pos) +#define ADC_CTRLA_SLAVEEN_Pos 5 /**< \brief (ADC_CTRLA) Slave Enable */ +#define ADC_CTRLA_SLAVEEN (_U_(0x1) << ADC_CTRLA_SLAVEEN_Pos) +#define ADC_CTRLA_RUNSTDBY_Pos 6 /**< \brief (ADC_CTRLA) Run in Standby */ +#define ADC_CTRLA_RUNSTDBY (_U_(0x1) << ADC_CTRLA_RUNSTDBY_Pos) +#define ADC_CTRLA_ONDEMAND_Pos 7 /**< \brief (ADC_CTRLA) On Demand Control */ +#define ADC_CTRLA_ONDEMAND (_U_(0x1) << ADC_CTRLA_ONDEMAND_Pos) +#define ADC_CTRLA_PRESCALER_Pos 8 /**< \brief (ADC_CTRLA) Prescaler Configuration */ +#define ADC_CTRLA_PRESCALER_Msk (_U_(0x7) << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER(value) (ADC_CTRLA_PRESCALER_Msk & ((value) << ADC_CTRLA_PRESCALER_Pos)) +#define ADC_CTRLA_PRESCALER_DIV2_Val _U_(0x0) /**< \brief (ADC_CTRLA) Peripheral clock divided by 2 */ +#define ADC_CTRLA_PRESCALER_DIV4_Val _U_(0x1) /**< \brief (ADC_CTRLA) Peripheral clock divided by 4 */ +#define ADC_CTRLA_PRESCALER_DIV8_Val _U_(0x2) /**< \brief (ADC_CTRLA) Peripheral clock divided by 8 */ +#define ADC_CTRLA_PRESCALER_DIV16_Val _U_(0x3) /**< \brief (ADC_CTRLA) Peripheral clock divided by 16 */ +#define ADC_CTRLA_PRESCALER_DIV32_Val _U_(0x4) /**< \brief (ADC_CTRLA) Peripheral clock divided by 32 */ +#define ADC_CTRLA_PRESCALER_DIV64_Val _U_(0x5) /**< \brief (ADC_CTRLA) Peripheral clock divided by 64 */ +#define ADC_CTRLA_PRESCALER_DIV128_Val _U_(0x6) /**< \brief (ADC_CTRLA) Peripheral clock divided by 128 */ +#define ADC_CTRLA_PRESCALER_DIV256_Val _U_(0x7) /**< \brief (ADC_CTRLA) Peripheral clock divided by 256 */ +#define ADC_CTRLA_PRESCALER_DIV2 (ADC_CTRLA_PRESCALER_DIV2_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV4 (ADC_CTRLA_PRESCALER_DIV4_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV8 (ADC_CTRLA_PRESCALER_DIV8_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV16 (ADC_CTRLA_PRESCALER_DIV16_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV32 (ADC_CTRLA_PRESCALER_DIV32_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV64 (ADC_CTRLA_PRESCALER_DIV64_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV128 (ADC_CTRLA_PRESCALER_DIV128_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_PRESCALER_DIV256 (ADC_CTRLA_PRESCALER_DIV256_Val << ADC_CTRLA_PRESCALER_Pos) +#define ADC_CTRLA_R2R_Pos 15 /**< \brief (ADC_CTRLA) Rail to Rail Operation Enable */ +#define ADC_CTRLA_R2R (_U_(0x1) << ADC_CTRLA_R2R_Pos) +#define ADC_CTRLA_MASK _U_(0x87FB) /**< \brief (ADC_CTRLA) MASK Register */ + +/* -------- ADC_EVCTRL : (ADC Offset: 0x02) (R/W 8) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t FLUSHEI:1; /*!< bit: 0 Flush Event Input Enable */ + uint8_t STARTEI:1; /*!< bit: 1 Start Conversion Event Input Enable */ + uint8_t FLUSHINV:1; /*!< bit: 2 Flush Event Invert Enable */ + uint8_t STARTINV:1; /*!< bit: 3 Start Conversion Event Invert Enable */ + uint8_t RESRDYEO:1; /*!< bit: 4 Result Ready Event Out */ + uint8_t WINMONEO:1; /*!< bit: 5 Window Monitor Event Out */ + uint8_t :2; /*!< bit: 6.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_EVCTRL_OFFSET 0x02 /**< \brief (ADC_EVCTRL offset) Event Control */ +#define ADC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_EVCTRL reset_value) Event Control */ + +#define ADC_EVCTRL_FLUSHEI_Pos 0 /**< \brief (ADC_EVCTRL) Flush Event Input Enable */ +#define ADC_EVCTRL_FLUSHEI (_U_(0x1) << ADC_EVCTRL_FLUSHEI_Pos) +#define ADC_EVCTRL_STARTEI_Pos 1 /**< \brief (ADC_EVCTRL) Start Conversion Event Input Enable */ +#define ADC_EVCTRL_STARTEI (_U_(0x1) << ADC_EVCTRL_STARTEI_Pos) +#define ADC_EVCTRL_FLUSHINV_Pos 2 /**< \brief (ADC_EVCTRL) Flush Event Invert Enable */ +#define ADC_EVCTRL_FLUSHINV (_U_(0x1) << ADC_EVCTRL_FLUSHINV_Pos) +#define ADC_EVCTRL_STARTINV_Pos 3 /**< \brief (ADC_EVCTRL) Start Conversion Event Invert Enable */ +#define ADC_EVCTRL_STARTINV (_U_(0x1) << ADC_EVCTRL_STARTINV_Pos) +#define ADC_EVCTRL_RESRDYEO_Pos 4 /**< \brief (ADC_EVCTRL) Result Ready Event Out */ +#define ADC_EVCTRL_RESRDYEO (_U_(0x1) << ADC_EVCTRL_RESRDYEO_Pos) +#define ADC_EVCTRL_WINMONEO_Pos 5 /**< \brief (ADC_EVCTRL) Window Monitor Event Out */ +#define ADC_EVCTRL_WINMONEO (_U_(0x1) << ADC_EVCTRL_WINMONEO_Pos) +#define ADC_EVCTRL_MASK _U_(0x3F) /**< \brief (ADC_EVCTRL) MASK Register */ + +/* -------- ADC_DBGCTRL : (ADC Offset: 0x03) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DBGCTRL_OFFSET 0x03 /**< \brief (ADC_DBGCTRL offset) Debug Control */ +#define ADC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_DBGCTRL reset_value) Debug Control */ + +#define ADC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (ADC_DBGCTRL) Debug Run */ +#define ADC_DBGCTRL_DBGRUN (_U_(0x1) << ADC_DBGCTRL_DBGRUN_Pos) +#define ADC_DBGCTRL_MASK _U_(0x01) /**< \brief (ADC_DBGCTRL) MASK Register */ + +/* -------- ADC_INPUTCTRL : (ADC Offset: 0x04) (R/W 16) Input Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t MUXPOS:5; /*!< bit: 0.. 4 Positive Mux Input Selection */ + uint16_t :2; /*!< bit: 5.. 6 Reserved */ + uint16_t DIFFMODE:1; /*!< bit: 7 Differential Mode */ + uint16_t MUXNEG:5; /*!< bit: 8..12 Negative Mux Input Selection */ + uint16_t :2; /*!< bit: 13..14 Reserved */ + uint16_t DSEQSTOP:1; /*!< bit: 15 Stop DMA Sequencing */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_INPUTCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INPUTCTRL_OFFSET 0x04 /**< \brief (ADC_INPUTCTRL offset) Input Control */ +#define ADC_INPUTCTRL_RESETVALUE _U_(0x0000) /**< \brief (ADC_INPUTCTRL reset_value) Input Control */ + +#define ADC_INPUTCTRL_MUXPOS_Pos 0 /**< \brief (ADC_INPUTCTRL) Positive Mux Input Selection */ +#define ADC_INPUTCTRL_MUXPOS_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS(value) (ADC_INPUTCTRL_MUXPOS_Msk & ((value) << ADC_INPUTCTRL_MUXPOS_Pos)) +#define ADC_INPUTCTRL_MUXPOS_AIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN8_Val _U_(0x8) /**< \brief (ADC_INPUTCTRL) ADC AIN8 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN9_Val _U_(0x9) /**< \brief (ADC_INPUTCTRL) ADC AIN9 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN10_Val _U_(0xA) /**< \brief (ADC_INPUTCTRL) ADC AIN10 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN11_Val _U_(0xB) /**< \brief (ADC_INPUTCTRL) ADC AIN11 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN12_Val _U_(0xC) /**< \brief (ADC_INPUTCTRL) ADC AIN12 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN13_Val _U_(0xD) /**< \brief (ADC_INPUTCTRL) ADC AIN13 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN14_Val _U_(0xE) /**< \brief (ADC_INPUTCTRL) ADC AIN14 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN15_Val _U_(0xF) /**< \brief (ADC_INPUTCTRL) ADC AIN15 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN16_Val _U_(0x10) /**< \brief (ADC_INPUTCTRL) ADC AIN16 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN17_Val _U_(0x11) /**< \brief (ADC_INPUTCTRL) ADC AIN17 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN18_Val _U_(0x12) /**< \brief (ADC_INPUTCTRL) ADC AIN18 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN19_Val _U_(0x13) /**< \brief (ADC_INPUTCTRL) ADC AIN19 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN20_Val _U_(0x14) /**< \brief (ADC_INPUTCTRL) ADC AIN20 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN21_Val _U_(0x15) /**< \brief (ADC_INPUTCTRL) ADC AIN21 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN22_Val _U_(0x16) /**< \brief (ADC_INPUTCTRL) ADC AIN22 Pin */ +#define ADC_INPUTCTRL_MUXPOS_AIN23_Val _U_(0x17) /**< \brief (ADC_INPUTCTRL) ADC AIN23 Pin */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled Core Supply */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDVBAT_Val _U_(0x19) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled VBAT Supply */ +#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val _U_(0x1A) /**< \brief (ADC_INPUTCTRL) 1/4 Scaled I/O Supply */ +#define ADC_INPUTCTRL_MUXPOS_BANDGAP_Val _U_(0x1B) /**< \brief (ADC_INPUTCTRL) Bandgap Voltage */ +#define ADC_INPUTCTRL_MUXPOS_PTAT_Val _U_(0x1C) /**< \brief (ADC_INPUTCTRL) Temperature Sensor */ +#define ADC_INPUTCTRL_MUXPOS_CTAT_Val _U_(0x1D) /**< \brief (ADC_INPUTCTRL) Temperature Sensor */ +#define ADC_INPUTCTRL_MUXPOS_DAC_Val _U_(0x1E) /**< \brief (ADC_INPUTCTRL) DAC Output */ +#define ADC_INPUTCTRL_MUXPOS_PTC_Val _U_(0x1F) /**< \brief (ADC_INPUTCTRL) PTC output (only on ADC0) */ +#define ADC_INPUTCTRL_MUXPOS_AIN0 (ADC_INPUTCTRL_MUXPOS_AIN0_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN1 (ADC_INPUTCTRL_MUXPOS_AIN1_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN2 (ADC_INPUTCTRL_MUXPOS_AIN2_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN3 (ADC_INPUTCTRL_MUXPOS_AIN3_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN4 (ADC_INPUTCTRL_MUXPOS_AIN4_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN5 (ADC_INPUTCTRL_MUXPOS_AIN5_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN6 (ADC_INPUTCTRL_MUXPOS_AIN6_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN7 (ADC_INPUTCTRL_MUXPOS_AIN7_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN8 (ADC_INPUTCTRL_MUXPOS_AIN8_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN9 (ADC_INPUTCTRL_MUXPOS_AIN9_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN10 (ADC_INPUTCTRL_MUXPOS_AIN10_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN11 (ADC_INPUTCTRL_MUXPOS_AIN11_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN12 (ADC_INPUTCTRL_MUXPOS_AIN12_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN13 (ADC_INPUTCTRL_MUXPOS_AIN13_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN14 (ADC_INPUTCTRL_MUXPOS_AIN14_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN15 (ADC_INPUTCTRL_MUXPOS_AIN15_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN16 (ADC_INPUTCTRL_MUXPOS_AIN16_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN17 (ADC_INPUTCTRL_MUXPOS_AIN17_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN18 (ADC_INPUTCTRL_MUXPOS_AIN18_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN19 (ADC_INPUTCTRL_MUXPOS_AIN19_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN20 (ADC_INPUTCTRL_MUXPOS_AIN20_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN21 (ADC_INPUTCTRL_MUXPOS_AIN21_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN22 (ADC_INPUTCTRL_MUXPOS_AIN22_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_AIN23 (ADC_INPUTCTRL_MUXPOS_AIN23_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC (ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDVBAT (ADC_INPUTCTRL_MUXPOS_SCALEDVBAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC (ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_BANDGAP (ADC_INPUTCTRL_MUXPOS_BANDGAP_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PTAT (ADC_INPUTCTRL_MUXPOS_PTAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_CTAT (ADC_INPUTCTRL_MUXPOS_CTAT_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_DAC (ADC_INPUTCTRL_MUXPOS_DAC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_MUXPOS_PTC (ADC_INPUTCTRL_MUXPOS_PTC_Val << ADC_INPUTCTRL_MUXPOS_Pos) +#define ADC_INPUTCTRL_DIFFMODE_Pos 7 /**< \brief (ADC_INPUTCTRL) Differential Mode */ +#define ADC_INPUTCTRL_DIFFMODE (_U_(0x1) << ADC_INPUTCTRL_DIFFMODE_Pos) +#define ADC_INPUTCTRL_MUXNEG_Pos 8 /**< \brief (ADC_INPUTCTRL) Negative Mux Input Selection */ +#define ADC_INPUTCTRL_MUXNEG_Msk (_U_(0x1F) << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG(value) (ADC_INPUTCTRL_MUXNEG_Msk & ((value) << ADC_INPUTCTRL_MUXNEG_Pos)) +#define ADC_INPUTCTRL_MUXNEG_AIN0_Val _U_(0x0) /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN1_Val _U_(0x1) /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN2_Val _U_(0x2) /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN3_Val _U_(0x3) /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN4_Val _U_(0x4) /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN5_Val _U_(0x5) /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN6_Val _U_(0x6) /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */ +#define ADC_INPUTCTRL_MUXNEG_AIN7_Val _U_(0x7) /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */ +#define ADC_INPUTCTRL_MUXNEG_GND_Val _U_(0x18) /**< \brief (ADC_INPUTCTRL) Internal Ground */ +#define ADC_INPUTCTRL_MUXNEG_AIN0 (ADC_INPUTCTRL_MUXNEG_AIN0_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN1 (ADC_INPUTCTRL_MUXNEG_AIN1_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN2 (ADC_INPUTCTRL_MUXNEG_AIN2_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN3 (ADC_INPUTCTRL_MUXNEG_AIN3_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN4 (ADC_INPUTCTRL_MUXNEG_AIN4_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN5 (ADC_INPUTCTRL_MUXNEG_AIN5_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN6 (ADC_INPUTCTRL_MUXNEG_AIN6_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_AIN7 (ADC_INPUTCTRL_MUXNEG_AIN7_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_MUXNEG_GND (ADC_INPUTCTRL_MUXNEG_GND_Val << ADC_INPUTCTRL_MUXNEG_Pos) +#define ADC_INPUTCTRL_DSEQSTOP_Pos 15 /**< \brief (ADC_INPUTCTRL) Stop DMA Sequencing */ +#define ADC_INPUTCTRL_DSEQSTOP (_U_(0x1) << ADC_INPUTCTRL_DSEQSTOP_Pos) +#define ADC_INPUTCTRL_MASK _U_(0x9F9F) /**< \brief (ADC_INPUTCTRL) MASK Register */ + +/* -------- ADC_CTRLB : (ADC Offset: 0x06) (R/W 16) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t LEFTADJ:1; /*!< bit: 0 Left-Adjusted Result */ + uint16_t FREERUN:1; /*!< bit: 1 Free Running Mode */ + uint16_t CORREN:1; /*!< bit: 2 Digital Correction Logic Enable */ + uint16_t RESSEL:2; /*!< bit: 3.. 4 Conversion Result Resolution */ + uint16_t :3; /*!< bit: 5.. 7 Reserved */ + uint16_t WINMODE:3; /*!< bit: 8..10 Window Monitor Mode */ + uint16_t WINSS:1; /*!< bit: 11 Window Single Sample */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CTRLB_OFFSET 0x06 /**< \brief (ADC_CTRLB offset) Control B */ +#define ADC_CTRLB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CTRLB reset_value) Control B */ + +#define ADC_CTRLB_LEFTADJ_Pos 0 /**< \brief (ADC_CTRLB) Left-Adjusted Result */ +#define ADC_CTRLB_LEFTADJ (_U_(0x1) << ADC_CTRLB_LEFTADJ_Pos) +#define ADC_CTRLB_FREERUN_Pos 1 /**< \brief (ADC_CTRLB) Free Running Mode */ +#define ADC_CTRLB_FREERUN (_U_(0x1) << ADC_CTRLB_FREERUN_Pos) +#define ADC_CTRLB_CORREN_Pos 2 /**< \brief (ADC_CTRLB) Digital Correction Logic Enable */ +#define ADC_CTRLB_CORREN (_U_(0x1) << ADC_CTRLB_CORREN_Pos) +#define ADC_CTRLB_RESSEL_Pos 3 /**< \brief (ADC_CTRLB) Conversion Result Resolution */ +#define ADC_CTRLB_RESSEL_Msk (_U_(0x3) << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL(value) (ADC_CTRLB_RESSEL_Msk & ((value) << ADC_CTRLB_RESSEL_Pos)) +#define ADC_CTRLB_RESSEL_12BIT_Val _U_(0x0) /**< \brief (ADC_CTRLB) 12-bit result */ +#define ADC_CTRLB_RESSEL_16BIT_Val _U_(0x1) /**< \brief (ADC_CTRLB) For averaging mode output */ +#define ADC_CTRLB_RESSEL_10BIT_Val _U_(0x2) /**< \brief (ADC_CTRLB) 10-bit result */ +#define ADC_CTRLB_RESSEL_8BIT_Val _U_(0x3) /**< \brief (ADC_CTRLB) 8-bit result */ +#define ADC_CTRLB_RESSEL_12BIT (ADC_CTRLB_RESSEL_12BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_16BIT (ADC_CTRLB_RESSEL_16BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_10BIT (ADC_CTRLB_RESSEL_10BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_RESSEL_8BIT (ADC_CTRLB_RESSEL_8BIT_Val << ADC_CTRLB_RESSEL_Pos) +#define ADC_CTRLB_WINMODE_Pos 8 /**< \brief (ADC_CTRLB) Window Monitor Mode */ +#define ADC_CTRLB_WINMODE_Msk (_U_(0x7) << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE(value) (ADC_CTRLB_WINMODE_Msk & ((value) << ADC_CTRLB_WINMODE_Pos)) +#define ADC_CTRLB_WINMODE_DISABLE_Val _U_(0x0) /**< \brief (ADC_CTRLB) No window mode (default) */ +#define ADC_CTRLB_WINMODE_MODE1_Val _U_(0x1) /**< \brief (ADC_CTRLB) RESULT > WINLT */ +#define ADC_CTRLB_WINMODE_MODE2_Val _U_(0x2) /**< \brief (ADC_CTRLB) RESULT < WINUT */ +#define ADC_CTRLB_WINMODE_MODE3_Val _U_(0x3) /**< \brief (ADC_CTRLB) WINLT < RESULT < WINUT */ +#define ADC_CTRLB_WINMODE_MODE4_Val _U_(0x4) /**< \brief (ADC_CTRLB) !(WINLT < RESULT < WINUT) */ +#define ADC_CTRLB_WINMODE_DISABLE (ADC_CTRLB_WINMODE_DISABLE_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE1 (ADC_CTRLB_WINMODE_MODE1_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE2 (ADC_CTRLB_WINMODE_MODE2_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE3 (ADC_CTRLB_WINMODE_MODE3_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINMODE_MODE4 (ADC_CTRLB_WINMODE_MODE4_Val << ADC_CTRLB_WINMODE_Pos) +#define ADC_CTRLB_WINSS_Pos 11 /**< \brief (ADC_CTRLB) Window Single Sample */ +#define ADC_CTRLB_WINSS (_U_(0x1) << ADC_CTRLB_WINSS_Pos) +#define ADC_CTRLB_MASK _U_(0x0F1F) /**< \brief (ADC_CTRLB) MASK Register */ + +/* -------- ADC_REFCTRL : (ADC Offset: 0x08) (R/W 8) Reference Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t REFSEL:4; /*!< bit: 0.. 3 Reference Selection */ + uint8_t :3; /*!< bit: 4.. 6 Reserved */ + uint8_t REFCOMP:1; /*!< bit: 7 Reference Buffer Offset Compensation Enable */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_REFCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_REFCTRL_OFFSET 0x08 /**< \brief (ADC_REFCTRL offset) Reference Control */ +#define ADC_REFCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_REFCTRL reset_value) Reference Control */ + +#define ADC_REFCTRL_REFSEL_Pos 0 /**< \brief (ADC_REFCTRL) Reference Selection */ +#define ADC_REFCTRL_REFSEL_Msk (_U_(0xF) << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL(value) (ADC_REFCTRL_REFSEL_Msk & ((value) << ADC_REFCTRL_REFSEL_Pos)) +#define ADC_REFCTRL_REFSEL_INTREF_Val _U_(0x0) /**< \brief (ADC_REFCTRL) Internal Bandgap Reference */ +#define ADC_REFCTRL_REFSEL_INTVCC0_Val _U_(0x2) /**< \brief (ADC_REFCTRL) 1/2 VDDANA */ +#define ADC_REFCTRL_REFSEL_INTVCC1_Val _U_(0x3) /**< \brief (ADC_REFCTRL) VDDANA */ +#define ADC_REFCTRL_REFSEL_AREFA_Val _U_(0x4) /**< \brief (ADC_REFCTRL) External Reference */ +#define ADC_REFCTRL_REFSEL_AREFB_Val _U_(0x5) /**< \brief (ADC_REFCTRL) External Reference */ +#define ADC_REFCTRL_REFSEL_AREFC_Val _U_(0x6) /**< \brief (ADC_REFCTRL) External Reference (only on ADC1) */ +#define ADC_REFCTRL_REFSEL_INTREF (ADC_REFCTRL_REFSEL_INTREF_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_INTVCC0 (ADC_REFCTRL_REFSEL_INTVCC0_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_INTVCC1 (ADC_REFCTRL_REFSEL_INTVCC1_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFA (ADC_REFCTRL_REFSEL_AREFA_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFB (ADC_REFCTRL_REFSEL_AREFB_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFSEL_AREFC (ADC_REFCTRL_REFSEL_AREFC_Val << ADC_REFCTRL_REFSEL_Pos) +#define ADC_REFCTRL_REFCOMP_Pos 7 /**< \brief (ADC_REFCTRL) Reference Buffer Offset Compensation Enable */ +#define ADC_REFCTRL_REFCOMP (_U_(0x1) << ADC_REFCTRL_REFCOMP_Pos) +#define ADC_REFCTRL_MASK _U_(0x8F) /**< \brief (ADC_REFCTRL) MASK Register */ + +/* -------- ADC_AVGCTRL : (ADC Offset: 0x0A) (R/W 8) Average Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SAMPLENUM:4; /*!< bit: 0.. 3 Number of Samples to be Collected */ + uint8_t ADJRES:3; /*!< bit: 4.. 6 Adjusting Result / Division Coefficient */ + uint8_t :1; /*!< bit: 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_AVGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_AVGCTRL_OFFSET 0x0A /**< \brief (ADC_AVGCTRL offset) Average Control */ +#define ADC_AVGCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_AVGCTRL reset_value) Average Control */ + +#define ADC_AVGCTRL_SAMPLENUM_Pos 0 /**< \brief (ADC_AVGCTRL) Number of Samples to be Collected */ +#define ADC_AVGCTRL_SAMPLENUM_Msk (_U_(0xF) << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM(value) (ADC_AVGCTRL_SAMPLENUM_Msk & ((value) << ADC_AVGCTRL_SAMPLENUM_Pos)) +#define ADC_AVGCTRL_SAMPLENUM_1_Val _U_(0x0) /**< \brief (ADC_AVGCTRL) 1 sample */ +#define ADC_AVGCTRL_SAMPLENUM_2_Val _U_(0x1) /**< \brief (ADC_AVGCTRL) 2 samples */ +#define ADC_AVGCTRL_SAMPLENUM_4_Val _U_(0x2) /**< \brief (ADC_AVGCTRL) 4 samples */ +#define ADC_AVGCTRL_SAMPLENUM_8_Val _U_(0x3) /**< \brief (ADC_AVGCTRL) 8 samples */ +#define ADC_AVGCTRL_SAMPLENUM_16_Val _U_(0x4) /**< \brief (ADC_AVGCTRL) 16 samples */ +#define ADC_AVGCTRL_SAMPLENUM_32_Val _U_(0x5) /**< \brief (ADC_AVGCTRL) 32 samples */ +#define ADC_AVGCTRL_SAMPLENUM_64_Val _U_(0x6) /**< \brief (ADC_AVGCTRL) 64 samples */ +#define ADC_AVGCTRL_SAMPLENUM_128_Val _U_(0x7) /**< \brief (ADC_AVGCTRL) 128 samples */ +#define ADC_AVGCTRL_SAMPLENUM_256_Val _U_(0x8) /**< \brief (ADC_AVGCTRL) 256 samples */ +#define ADC_AVGCTRL_SAMPLENUM_512_Val _U_(0x9) /**< \brief (ADC_AVGCTRL) 512 samples */ +#define ADC_AVGCTRL_SAMPLENUM_1024_Val _U_(0xA) /**< \brief (ADC_AVGCTRL) 1024 samples */ +#define ADC_AVGCTRL_SAMPLENUM_1 (ADC_AVGCTRL_SAMPLENUM_1_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_2 (ADC_AVGCTRL_SAMPLENUM_2_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_4 (ADC_AVGCTRL_SAMPLENUM_4_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_8 (ADC_AVGCTRL_SAMPLENUM_8_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_16 (ADC_AVGCTRL_SAMPLENUM_16_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_32 (ADC_AVGCTRL_SAMPLENUM_32_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_64 (ADC_AVGCTRL_SAMPLENUM_64_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_128 (ADC_AVGCTRL_SAMPLENUM_128_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_256 (ADC_AVGCTRL_SAMPLENUM_256_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_512 (ADC_AVGCTRL_SAMPLENUM_512_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_SAMPLENUM_1024 (ADC_AVGCTRL_SAMPLENUM_1024_Val << ADC_AVGCTRL_SAMPLENUM_Pos) +#define ADC_AVGCTRL_ADJRES_Pos 4 /**< \brief (ADC_AVGCTRL) Adjusting Result / Division Coefficient */ +#define ADC_AVGCTRL_ADJRES_Msk (_U_(0x7) << ADC_AVGCTRL_ADJRES_Pos) +#define ADC_AVGCTRL_ADJRES(value) (ADC_AVGCTRL_ADJRES_Msk & ((value) << ADC_AVGCTRL_ADJRES_Pos)) +#define ADC_AVGCTRL_MASK _U_(0x7F) /**< \brief (ADC_AVGCTRL) MASK Register */ + +/* -------- ADC_SAMPCTRL : (ADC Offset: 0x0B) (R/W 8) Sample Time Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SAMPLEN:6; /*!< bit: 0.. 5 Sampling Time Length */ + uint8_t :1; /*!< bit: 6 Reserved */ + uint8_t OFFCOMP:1; /*!< bit: 7 Comparator Offset Compensation Enable */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_SAMPCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SAMPCTRL_OFFSET 0x0B /**< \brief (ADC_SAMPCTRL offset) Sample Time Control */ +#define ADC_SAMPCTRL_RESETVALUE _U_(0x00) /**< \brief (ADC_SAMPCTRL reset_value) Sample Time Control */ + +#define ADC_SAMPCTRL_SAMPLEN_Pos 0 /**< \brief (ADC_SAMPCTRL) Sampling Time Length */ +#define ADC_SAMPCTRL_SAMPLEN_Msk (_U_(0x3F) << ADC_SAMPCTRL_SAMPLEN_Pos) +#define ADC_SAMPCTRL_SAMPLEN(value) (ADC_SAMPCTRL_SAMPLEN_Msk & ((value) << ADC_SAMPCTRL_SAMPLEN_Pos)) +#define ADC_SAMPCTRL_OFFCOMP_Pos 7 /**< \brief (ADC_SAMPCTRL) Comparator Offset Compensation Enable */ +#define ADC_SAMPCTRL_OFFCOMP (_U_(0x1) << ADC_SAMPCTRL_OFFCOMP_Pos) +#define ADC_SAMPCTRL_MASK _U_(0xBF) /**< \brief (ADC_SAMPCTRL) MASK Register */ + +/* -------- ADC_WINLT : (ADC Offset: 0x0C) (R/W 16) Window Monitor Lower Threshold -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t WINLT:16; /*!< bit: 0..15 Window Lower Threshold */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_WINLT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINLT_OFFSET 0x0C /**< \brief (ADC_WINLT offset) Window Monitor Lower Threshold */ +#define ADC_WINLT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINLT reset_value) Window Monitor Lower Threshold */ + +#define ADC_WINLT_WINLT_Pos 0 /**< \brief (ADC_WINLT) Window Lower Threshold */ +#define ADC_WINLT_WINLT_Msk (_U_(0xFFFF) << ADC_WINLT_WINLT_Pos) +#define ADC_WINLT_WINLT(value) (ADC_WINLT_WINLT_Msk & ((value) << ADC_WINLT_WINLT_Pos)) +#define ADC_WINLT_MASK _U_(0xFFFF) /**< \brief (ADC_WINLT) MASK Register */ + +/* -------- ADC_WINUT : (ADC Offset: 0x0E) (R/W 16) Window Monitor Upper Threshold -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t WINUT:16; /*!< bit: 0..15 Window Upper Threshold */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_WINUT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_WINUT_OFFSET 0x0E /**< \brief (ADC_WINUT offset) Window Monitor Upper Threshold */ +#define ADC_WINUT_RESETVALUE _U_(0x0000) /**< \brief (ADC_WINUT reset_value) Window Monitor Upper Threshold */ + +#define ADC_WINUT_WINUT_Pos 0 /**< \brief (ADC_WINUT) Window Upper Threshold */ +#define ADC_WINUT_WINUT_Msk (_U_(0xFFFF) << ADC_WINUT_WINUT_Pos) +#define ADC_WINUT_WINUT(value) (ADC_WINUT_WINUT_Msk & ((value) << ADC_WINUT_WINUT_Pos)) +#define ADC_WINUT_MASK _U_(0xFFFF) /**< \brief (ADC_WINUT) MASK Register */ + +/* -------- ADC_GAINCORR : (ADC Offset: 0x10) (R/W 16) Gain Correction -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t GAINCORR:12; /*!< bit: 0..11 Gain Correction Value */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_GAINCORR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_GAINCORR_OFFSET 0x10 /**< \brief (ADC_GAINCORR offset) Gain Correction */ +#define ADC_GAINCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_GAINCORR reset_value) Gain Correction */ + +#define ADC_GAINCORR_GAINCORR_Pos 0 /**< \brief (ADC_GAINCORR) Gain Correction Value */ +#define ADC_GAINCORR_GAINCORR_Msk (_U_(0xFFF) << ADC_GAINCORR_GAINCORR_Pos) +#define ADC_GAINCORR_GAINCORR(value) (ADC_GAINCORR_GAINCORR_Msk & ((value) << ADC_GAINCORR_GAINCORR_Pos)) +#define ADC_GAINCORR_MASK _U_(0x0FFF) /**< \brief (ADC_GAINCORR) MASK Register */ + +/* -------- ADC_OFFSETCORR : (ADC Offset: 0x12) (R/W 16) Offset Correction -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t OFFSETCORR:12; /*!< bit: 0..11 Offset Correction Value */ + uint16_t :4; /*!< bit: 12..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_OFFSETCORR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_OFFSETCORR_OFFSET 0x12 /**< \brief (ADC_OFFSETCORR offset) Offset Correction */ +#define ADC_OFFSETCORR_RESETVALUE _U_(0x0000) /**< \brief (ADC_OFFSETCORR reset_value) Offset Correction */ + +#define ADC_OFFSETCORR_OFFSETCORR_Pos 0 /**< \brief (ADC_OFFSETCORR) Offset Correction Value */ +#define ADC_OFFSETCORR_OFFSETCORR_Msk (_U_(0xFFF) << ADC_OFFSETCORR_OFFSETCORR_Pos) +#define ADC_OFFSETCORR_OFFSETCORR(value) (ADC_OFFSETCORR_OFFSETCORR_Msk & ((value) << ADC_OFFSETCORR_OFFSETCORR_Pos)) +#define ADC_OFFSETCORR_MASK _U_(0x0FFF) /**< \brief (ADC_OFFSETCORR) MASK Register */ + +/* -------- ADC_SWTRIG : (ADC Offset: 0x14) (R/W 8) Software Trigger -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t FLUSH:1; /*!< bit: 0 ADC Conversion Flush */ + uint8_t START:1; /*!< bit: 1 Start ADC Conversion */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_SWTRIG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SWTRIG_OFFSET 0x14 /**< \brief (ADC_SWTRIG offset) Software Trigger */ +#define ADC_SWTRIG_RESETVALUE _U_(0x00) /**< \brief (ADC_SWTRIG reset_value) Software Trigger */ + +#define ADC_SWTRIG_FLUSH_Pos 0 /**< \brief (ADC_SWTRIG) ADC Conversion Flush */ +#define ADC_SWTRIG_FLUSH (_U_(0x1) << ADC_SWTRIG_FLUSH_Pos) +#define ADC_SWTRIG_START_Pos 1 /**< \brief (ADC_SWTRIG) Start ADC Conversion */ +#define ADC_SWTRIG_START (_U_(0x1) << ADC_SWTRIG_START_Pos) +#define ADC_SWTRIG_MASK _U_(0x03) /**< \brief (ADC_SWTRIG) MASK Register */ + +/* -------- ADC_INTENCLR : (ADC Offset: 0x2C) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Disable */ + uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Disable */ + uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Disable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTENCLR_OFFSET 0x2C /**< \brief (ADC_INTENCLR offset) Interrupt Enable Clear */ +#define ADC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define ADC_INTENCLR_RESRDY_Pos 0 /**< \brief (ADC_INTENCLR) Result Ready Interrupt Disable */ +#define ADC_INTENCLR_RESRDY (_U_(0x1) << ADC_INTENCLR_RESRDY_Pos) +#define ADC_INTENCLR_OVERRUN_Pos 1 /**< \brief (ADC_INTENCLR) Overrun Interrupt Disable */ +#define ADC_INTENCLR_OVERRUN (_U_(0x1) << ADC_INTENCLR_OVERRUN_Pos) +#define ADC_INTENCLR_WINMON_Pos 2 /**< \brief (ADC_INTENCLR) Window Monitor Interrupt Disable */ +#define ADC_INTENCLR_WINMON (_U_(0x1) << ADC_INTENCLR_WINMON_Pos) +#define ADC_INTENCLR_MASK _U_(0x07) /**< \brief (ADC_INTENCLR) MASK Register */ + +/* -------- ADC_INTENSET : (ADC Offset: 0x2D) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */ + uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */ + uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTENSET_OFFSET 0x2D /**< \brief (ADC_INTENSET offset) Interrupt Enable Set */ +#define ADC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (ADC_INTENSET reset_value) Interrupt Enable Set */ + +#define ADC_INTENSET_RESRDY_Pos 0 /**< \brief (ADC_INTENSET) Result Ready Interrupt Enable */ +#define ADC_INTENSET_RESRDY (_U_(0x1) << ADC_INTENSET_RESRDY_Pos) +#define ADC_INTENSET_OVERRUN_Pos 1 /**< \brief (ADC_INTENSET) Overrun Interrupt Enable */ +#define ADC_INTENSET_OVERRUN (_U_(0x1) << ADC_INTENSET_OVERRUN_Pos) +#define ADC_INTENSET_WINMON_Pos 2 /**< \brief (ADC_INTENSET) Window Monitor Interrupt Enable */ +#define ADC_INTENSET_WINMON (_U_(0x1) << ADC_INTENSET_WINMON_Pos) +#define ADC_INTENSET_MASK _U_(0x07) /**< \brief (ADC_INTENSET) MASK Register */ + +/* -------- ADC_INTFLAG : (ADC Offset: 0x2E) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Flag */ + __I uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Flag */ + __I uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Flag */ + __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_INTFLAG_OFFSET 0x2E /**< \brief (ADC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define ADC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (ADC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define ADC_INTFLAG_RESRDY_Pos 0 /**< \brief (ADC_INTFLAG) Result Ready Interrupt Flag */ +#define ADC_INTFLAG_RESRDY (_U_(0x1) << ADC_INTFLAG_RESRDY_Pos) +#define ADC_INTFLAG_OVERRUN_Pos 1 /**< \brief (ADC_INTFLAG) Overrun Interrupt Flag */ +#define ADC_INTFLAG_OVERRUN (_U_(0x1) << ADC_INTFLAG_OVERRUN_Pos) +#define ADC_INTFLAG_WINMON_Pos 2 /**< \brief (ADC_INTFLAG) Window Monitor Interrupt Flag */ +#define ADC_INTFLAG_WINMON (_U_(0x1) << ADC_INTFLAG_WINMON_Pos) +#define ADC_INTFLAG_MASK _U_(0x07) /**< \brief (ADC_INTFLAG) MASK Register */ + +/* -------- ADC_STATUS : (ADC Offset: 0x2F) (R/ 8) Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t ADCBUSY:1; /*!< bit: 0 ADC Busy Status */ + uint8_t :1; /*!< bit: 1 Reserved */ + uint8_t WCC:6; /*!< bit: 2.. 7 Window Comparator Counter */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} ADC_STATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_STATUS_OFFSET 0x2F /**< \brief (ADC_STATUS offset) Status */ +#define ADC_STATUS_RESETVALUE _U_(0x00) /**< \brief (ADC_STATUS reset_value) Status */ + +#define ADC_STATUS_ADCBUSY_Pos 0 /**< \brief (ADC_STATUS) ADC Busy Status */ +#define ADC_STATUS_ADCBUSY (_U_(0x1) << ADC_STATUS_ADCBUSY_Pos) +#define ADC_STATUS_WCC_Pos 2 /**< \brief (ADC_STATUS) Window Comparator Counter */ +#define ADC_STATUS_WCC_Msk (_U_(0x3F) << ADC_STATUS_WCC_Pos) +#define ADC_STATUS_WCC(value) (ADC_STATUS_WCC_Msk & ((value) << ADC_STATUS_WCC_Pos)) +#define ADC_STATUS_MASK _U_(0xFD) /**< \brief (ADC_STATUS) MASK Register */ + +/* -------- ADC_SYNCBUSY : (ADC Offset: 0x30) (R/ 32) Synchronization Busy -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 SWRST Synchronization Busy */ + uint32_t ENABLE:1; /*!< bit: 1 ENABLE Synchronization Busy */ + uint32_t INPUTCTRL:1; /*!< bit: 2 Input Control Synchronization Busy */ + uint32_t CTRLB:1; /*!< bit: 3 Control B Synchronization Busy */ + uint32_t REFCTRL:1; /*!< bit: 4 Reference Control Synchronization Busy */ + uint32_t AVGCTRL:1; /*!< bit: 5 Average Control Synchronization Busy */ + uint32_t SAMPCTRL:1; /*!< bit: 6 Sampling Time Control Synchronization Busy */ + uint32_t WINLT:1; /*!< bit: 7 Window Monitor Lower Threshold Synchronization Busy */ + uint32_t WINUT:1; /*!< bit: 8 Window Monitor Upper Threshold Synchronization Busy */ + uint32_t GAINCORR:1; /*!< bit: 9 Gain Correction Synchronization Busy */ + uint32_t OFFSETCORR:1; /*!< bit: 10 Offset Correction Synchronization Busy */ + uint32_t SWTRIG:1; /*!< bit: 11 Software Trigger Synchronization Busy */ + uint32_t :20; /*!< bit: 12..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_SYNCBUSY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_SYNCBUSY_OFFSET 0x30 /**< \brief (ADC_SYNCBUSY offset) Synchronization Busy */ +#define ADC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (ADC_SYNCBUSY reset_value) Synchronization Busy */ + +#define ADC_SYNCBUSY_SWRST_Pos 0 /**< \brief (ADC_SYNCBUSY) SWRST Synchronization Busy */ +#define ADC_SYNCBUSY_SWRST (_U_(0x1) << ADC_SYNCBUSY_SWRST_Pos) +#define ADC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (ADC_SYNCBUSY) ENABLE Synchronization Busy */ +#define ADC_SYNCBUSY_ENABLE (_U_(0x1) << ADC_SYNCBUSY_ENABLE_Pos) +#define ADC_SYNCBUSY_INPUTCTRL_Pos 2 /**< \brief (ADC_SYNCBUSY) Input Control Synchronization Busy */ +#define ADC_SYNCBUSY_INPUTCTRL (_U_(0x1) << ADC_SYNCBUSY_INPUTCTRL_Pos) +#define ADC_SYNCBUSY_CTRLB_Pos 3 /**< \brief (ADC_SYNCBUSY) Control B Synchronization Busy */ +#define ADC_SYNCBUSY_CTRLB (_U_(0x1) << ADC_SYNCBUSY_CTRLB_Pos) +#define ADC_SYNCBUSY_REFCTRL_Pos 4 /**< \brief (ADC_SYNCBUSY) Reference Control Synchronization Busy */ +#define ADC_SYNCBUSY_REFCTRL (_U_(0x1) << ADC_SYNCBUSY_REFCTRL_Pos) +#define ADC_SYNCBUSY_AVGCTRL_Pos 5 /**< \brief (ADC_SYNCBUSY) Average Control Synchronization Busy */ +#define ADC_SYNCBUSY_AVGCTRL (_U_(0x1) << ADC_SYNCBUSY_AVGCTRL_Pos) +#define ADC_SYNCBUSY_SAMPCTRL_Pos 6 /**< \brief (ADC_SYNCBUSY) Sampling Time Control Synchronization Busy */ +#define ADC_SYNCBUSY_SAMPCTRL (_U_(0x1) << ADC_SYNCBUSY_SAMPCTRL_Pos) +#define ADC_SYNCBUSY_WINLT_Pos 7 /**< \brief (ADC_SYNCBUSY) Window Monitor Lower Threshold Synchronization Busy */ +#define ADC_SYNCBUSY_WINLT (_U_(0x1) << ADC_SYNCBUSY_WINLT_Pos) +#define ADC_SYNCBUSY_WINUT_Pos 8 /**< \brief (ADC_SYNCBUSY) Window Monitor Upper Threshold Synchronization Busy */ +#define ADC_SYNCBUSY_WINUT (_U_(0x1) << ADC_SYNCBUSY_WINUT_Pos) +#define ADC_SYNCBUSY_GAINCORR_Pos 9 /**< \brief (ADC_SYNCBUSY) Gain Correction Synchronization Busy */ +#define ADC_SYNCBUSY_GAINCORR (_U_(0x1) << ADC_SYNCBUSY_GAINCORR_Pos) +#define ADC_SYNCBUSY_OFFSETCORR_Pos 10 /**< \brief (ADC_SYNCBUSY) Offset Correction Synchronization Busy */ +#define ADC_SYNCBUSY_OFFSETCORR (_U_(0x1) << ADC_SYNCBUSY_OFFSETCORR_Pos) +#define ADC_SYNCBUSY_SWTRIG_Pos 11 /**< \brief (ADC_SYNCBUSY) Software Trigger Synchronization Busy */ +#define ADC_SYNCBUSY_SWTRIG (_U_(0x1) << ADC_SYNCBUSY_SWTRIG_Pos) +#define ADC_SYNCBUSY_MASK _U_(0x00000FFF) /**< \brief (ADC_SYNCBUSY) MASK Register */ + +/* -------- ADC_DSEQDATA : (ADC Offset: 0x34) ( /W 32) DMA Sequencial Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t DATA:32; /*!< bit: 0..31 DMA Sequential Data */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_DSEQDATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DSEQDATA_OFFSET 0x34 /**< \brief (ADC_DSEQDATA offset) DMA Sequencial Data */ +#define ADC_DSEQDATA_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQDATA reset_value) DMA Sequencial Data */ + +#define ADC_DSEQDATA_DATA_Pos 0 /**< \brief (ADC_DSEQDATA) DMA Sequential Data */ +#define ADC_DSEQDATA_DATA_Msk (_U_(0xFFFFFFFF) << ADC_DSEQDATA_DATA_Pos) +#define ADC_DSEQDATA_DATA(value) (ADC_DSEQDATA_DATA_Msk & ((value) << ADC_DSEQDATA_DATA_Pos)) +#define ADC_DSEQDATA_MASK _U_(0xFFFFFFFF) /**< \brief (ADC_DSEQDATA) MASK Register */ + +/* -------- ADC_DSEQCTRL : (ADC Offset: 0x38) (R/W 32) DMA Sequential Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INPUTCTRL:1; /*!< bit: 0 Input Control */ + uint32_t CTRLB:1; /*!< bit: 1 Control B */ + uint32_t REFCTRL:1; /*!< bit: 2 Reference Control */ + uint32_t AVGCTRL:1; /*!< bit: 3 Average Control */ + uint32_t SAMPCTRL:1; /*!< bit: 4 Sampling Time Control */ + uint32_t WINLT:1; /*!< bit: 5 Window Monitor Lower Threshold */ + uint32_t WINUT:1; /*!< bit: 6 Window Monitor Upper Threshold */ + uint32_t GAINCORR:1; /*!< bit: 7 Gain Correction */ + uint32_t OFFSETCORR:1; /*!< bit: 8 Offset Correction */ + uint32_t :22; /*!< bit: 9..30 Reserved */ + uint32_t AUTOSTART:1; /*!< bit: 31 ADC Auto-Start Conversion */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_DSEQCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DSEQCTRL_OFFSET 0x38 /**< \brief (ADC_DSEQCTRL offset) DMA Sequential Control */ +#define ADC_DSEQCTRL_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQCTRL reset_value) DMA Sequential Control */ + +#define ADC_DSEQCTRL_INPUTCTRL_Pos 0 /**< \brief (ADC_DSEQCTRL) Input Control */ +#define ADC_DSEQCTRL_INPUTCTRL (_U_(0x1) << ADC_DSEQCTRL_INPUTCTRL_Pos) +#define ADC_DSEQCTRL_CTRLB_Pos 1 /**< \brief (ADC_DSEQCTRL) Control B */ +#define ADC_DSEQCTRL_CTRLB (_U_(0x1) << ADC_DSEQCTRL_CTRLB_Pos) +#define ADC_DSEQCTRL_REFCTRL_Pos 2 /**< \brief (ADC_DSEQCTRL) Reference Control */ +#define ADC_DSEQCTRL_REFCTRL (_U_(0x1) << ADC_DSEQCTRL_REFCTRL_Pos) +#define ADC_DSEQCTRL_AVGCTRL_Pos 3 /**< \brief (ADC_DSEQCTRL) Average Control */ +#define ADC_DSEQCTRL_AVGCTRL (_U_(0x1) << ADC_DSEQCTRL_AVGCTRL_Pos) +#define ADC_DSEQCTRL_SAMPCTRL_Pos 4 /**< \brief (ADC_DSEQCTRL) Sampling Time Control */ +#define ADC_DSEQCTRL_SAMPCTRL (_U_(0x1) << ADC_DSEQCTRL_SAMPCTRL_Pos) +#define ADC_DSEQCTRL_WINLT_Pos 5 /**< \brief (ADC_DSEQCTRL) Window Monitor Lower Threshold */ +#define ADC_DSEQCTRL_WINLT (_U_(0x1) << ADC_DSEQCTRL_WINLT_Pos) +#define ADC_DSEQCTRL_WINUT_Pos 6 /**< \brief (ADC_DSEQCTRL) Window Monitor Upper Threshold */ +#define ADC_DSEQCTRL_WINUT (_U_(0x1) << ADC_DSEQCTRL_WINUT_Pos) +#define ADC_DSEQCTRL_GAINCORR_Pos 7 /**< \brief (ADC_DSEQCTRL) Gain Correction */ +#define ADC_DSEQCTRL_GAINCORR (_U_(0x1) << ADC_DSEQCTRL_GAINCORR_Pos) +#define ADC_DSEQCTRL_OFFSETCORR_Pos 8 /**< \brief (ADC_DSEQCTRL) Offset Correction */ +#define ADC_DSEQCTRL_OFFSETCORR (_U_(0x1) << ADC_DSEQCTRL_OFFSETCORR_Pos) +#define ADC_DSEQCTRL_AUTOSTART_Pos 31 /**< \brief (ADC_DSEQCTRL) ADC Auto-Start Conversion */ +#define ADC_DSEQCTRL_AUTOSTART (_U_(0x1) << ADC_DSEQCTRL_AUTOSTART_Pos) +#define ADC_DSEQCTRL_MASK _U_(0x800001FF) /**< \brief (ADC_DSEQCTRL) MASK Register */ + +/* -------- ADC_DSEQSTAT : (ADC Offset: 0x3C) (R/ 32) DMA Sequencial Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INPUTCTRL:1; /*!< bit: 0 Input Control */ + uint32_t CTRLB:1; /*!< bit: 1 Control B */ + uint32_t REFCTRL:1; /*!< bit: 2 Reference Control */ + uint32_t AVGCTRL:1; /*!< bit: 3 Average Control */ + uint32_t SAMPCTRL:1; /*!< bit: 4 Sampling Time Control */ + uint32_t WINLT:1; /*!< bit: 5 Window Monitor Lower Threshold */ + uint32_t WINUT:1; /*!< bit: 6 Window Monitor Upper Threshold */ + uint32_t GAINCORR:1; /*!< bit: 7 Gain Correction */ + uint32_t OFFSETCORR:1; /*!< bit: 8 Offset Correction */ + uint32_t :22; /*!< bit: 9..30 Reserved */ + uint32_t BUSY:1; /*!< bit: 31 DMA Sequencing Busy */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} ADC_DSEQSTAT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_DSEQSTAT_OFFSET 0x3C /**< \brief (ADC_DSEQSTAT offset) DMA Sequencial Status */ +#define ADC_DSEQSTAT_RESETVALUE _U_(0x00000000) /**< \brief (ADC_DSEQSTAT reset_value) DMA Sequencial Status */ + +#define ADC_DSEQSTAT_INPUTCTRL_Pos 0 /**< \brief (ADC_DSEQSTAT) Input Control */ +#define ADC_DSEQSTAT_INPUTCTRL (_U_(0x1) << ADC_DSEQSTAT_INPUTCTRL_Pos) +#define ADC_DSEQSTAT_CTRLB_Pos 1 /**< \brief (ADC_DSEQSTAT) Control B */ +#define ADC_DSEQSTAT_CTRLB (_U_(0x1) << ADC_DSEQSTAT_CTRLB_Pos) +#define ADC_DSEQSTAT_REFCTRL_Pos 2 /**< \brief (ADC_DSEQSTAT) Reference Control */ +#define ADC_DSEQSTAT_REFCTRL (_U_(0x1) << ADC_DSEQSTAT_REFCTRL_Pos) +#define ADC_DSEQSTAT_AVGCTRL_Pos 3 /**< \brief (ADC_DSEQSTAT) Average Control */ +#define ADC_DSEQSTAT_AVGCTRL (_U_(0x1) << ADC_DSEQSTAT_AVGCTRL_Pos) +#define ADC_DSEQSTAT_SAMPCTRL_Pos 4 /**< \brief (ADC_DSEQSTAT) Sampling Time Control */ +#define ADC_DSEQSTAT_SAMPCTRL (_U_(0x1) << ADC_DSEQSTAT_SAMPCTRL_Pos) +#define ADC_DSEQSTAT_WINLT_Pos 5 /**< \brief (ADC_DSEQSTAT) Window Monitor Lower Threshold */ +#define ADC_DSEQSTAT_WINLT (_U_(0x1) << ADC_DSEQSTAT_WINLT_Pos) +#define ADC_DSEQSTAT_WINUT_Pos 6 /**< \brief (ADC_DSEQSTAT) Window Monitor Upper Threshold */ +#define ADC_DSEQSTAT_WINUT (_U_(0x1) << ADC_DSEQSTAT_WINUT_Pos) +#define ADC_DSEQSTAT_GAINCORR_Pos 7 /**< \brief (ADC_DSEQSTAT) Gain Correction */ +#define ADC_DSEQSTAT_GAINCORR (_U_(0x1) << ADC_DSEQSTAT_GAINCORR_Pos) +#define ADC_DSEQSTAT_OFFSETCORR_Pos 8 /**< \brief (ADC_DSEQSTAT) Offset Correction */ +#define ADC_DSEQSTAT_OFFSETCORR (_U_(0x1) << ADC_DSEQSTAT_OFFSETCORR_Pos) +#define ADC_DSEQSTAT_BUSY_Pos 31 /**< \brief (ADC_DSEQSTAT) DMA Sequencing Busy */ +#define ADC_DSEQSTAT_BUSY (_U_(0x1) << ADC_DSEQSTAT_BUSY_Pos) +#define ADC_DSEQSTAT_MASK _U_(0x800001FF) /**< \brief (ADC_DSEQSTAT) MASK Register */ + +/* -------- ADC_RESULT : (ADC Offset: 0x40) (R/ 16) Result Conversion Value -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESULT:16; /*!< bit: 0..15 Result Conversion Value */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_RESULT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_RESULT_OFFSET 0x40 /**< \brief (ADC_RESULT offset) Result Conversion Value */ +#define ADC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESULT reset_value) Result Conversion Value */ + +#define ADC_RESULT_RESULT_Pos 0 /**< \brief (ADC_RESULT) Result Conversion Value */ +#define ADC_RESULT_RESULT_Msk (_U_(0xFFFF) << ADC_RESULT_RESULT_Pos) +#define ADC_RESULT_RESULT(value) (ADC_RESULT_RESULT_Msk & ((value) << ADC_RESULT_RESULT_Pos)) +#define ADC_RESULT_MASK _U_(0xFFFF) /**< \brief (ADC_RESULT) MASK Register */ + +/* -------- ADC_RESS : (ADC Offset: 0x44) (R/ 16) Last Sample Result -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESS:16; /*!< bit: 0..15 Last ADC conversion result */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_RESS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_RESS_OFFSET 0x44 /**< \brief (ADC_RESS offset) Last Sample Result */ +#define ADC_RESS_RESETVALUE _U_(0x0000) /**< \brief (ADC_RESS reset_value) Last Sample Result */ + +#define ADC_RESS_RESS_Pos 0 /**< \brief (ADC_RESS) Last ADC conversion result */ +#define ADC_RESS_RESS_Msk (_U_(0xFFFF) << ADC_RESS_RESS_Pos) +#define ADC_RESS_RESS(value) (ADC_RESS_RESS_Msk & ((value) << ADC_RESS_RESS_Pos)) +#define ADC_RESS_MASK _U_(0xFFFF) /**< \brief (ADC_RESS) MASK Register */ + +/* -------- ADC_CALIB : (ADC Offset: 0x48) (R/W 16) Calibration -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t BIASCOMP:3; /*!< bit: 0.. 2 Bias Comparator Scaling */ + uint16_t :1; /*!< bit: 3 Reserved */ + uint16_t BIASR2R:3; /*!< bit: 4.. 6 Bias R2R Ampli scaling */ + uint16_t :1; /*!< bit: 7 Reserved */ + uint16_t BIASREFBUF:3; /*!< bit: 8..10 Bias Reference Buffer Scaling */ + uint16_t :5; /*!< bit: 11..15 Reserved */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} ADC_CALIB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define ADC_CALIB_OFFSET 0x48 /**< \brief (ADC_CALIB offset) Calibration */ +#define ADC_CALIB_RESETVALUE _U_(0x0000) /**< \brief (ADC_CALIB reset_value) Calibration */ + +#define ADC_CALIB_BIASCOMP_Pos 0 /**< \brief (ADC_CALIB) Bias Comparator Scaling */ +#define ADC_CALIB_BIASCOMP_Msk (_U_(0x7) << ADC_CALIB_BIASCOMP_Pos) +#define ADC_CALIB_BIASCOMP(value) (ADC_CALIB_BIASCOMP_Msk & ((value) << ADC_CALIB_BIASCOMP_Pos)) +#define ADC_CALIB_BIASR2R_Pos 4 /**< \brief (ADC_CALIB) Bias R2R Ampli scaling */ +#define ADC_CALIB_BIASR2R_Msk (_U_(0x7) << ADC_CALIB_BIASR2R_Pos) +#define ADC_CALIB_BIASR2R(value) (ADC_CALIB_BIASR2R_Msk & ((value) << ADC_CALIB_BIASR2R_Pos)) +#define ADC_CALIB_BIASREFBUF_Pos 8 /**< \brief (ADC_CALIB) Bias Reference Buffer Scaling */ +#define ADC_CALIB_BIASREFBUF_Msk (_U_(0x7) << ADC_CALIB_BIASREFBUF_Pos) +#define ADC_CALIB_BIASREFBUF(value) (ADC_CALIB_BIASREFBUF_Msk & ((value) << ADC_CALIB_BIASREFBUF_Pos)) +#define ADC_CALIB_MASK _U_(0x0777) /**< \brief (ADC_CALIB) MASK Register */ + +/** \brief ADC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO ADC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 16) Control A */ + __IO ADC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 8) Event Control */ + __IO ADC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x03 (R/W 8) Debug Control */ + __IO ADC_INPUTCTRL_Type INPUTCTRL; /**< \brief Offset: 0x04 (R/W 16) Input Control */ + __IO ADC_CTRLB_Type CTRLB; /**< \brief Offset: 0x06 (R/W 16) Control B */ + __IO ADC_REFCTRL_Type REFCTRL; /**< \brief Offset: 0x08 (R/W 8) Reference Control */ + RoReg8 Reserved1[0x1]; + __IO ADC_AVGCTRL_Type AVGCTRL; /**< \brief Offset: 0x0A (R/W 8) Average Control */ + __IO ADC_SAMPCTRL_Type SAMPCTRL; /**< \brief Offset: 0x0B (R/W 8) Sample Time Control */ + __IO ADC_WINLT_Type WINLT; /**< \brief Offset: 0x0C (R/W 16) Window Monitor Lower Threshold */ + __IO ADC_WINUT_Type WINUT; /**< \brief Offset: 0x0E (R/W 16) Window Monitor Upper Threshold */ + __IO ADC_GAINCORR_Type GAINCORR; /**< \brief Offset: 0x10 (R/W 16) Gain Correction */ + __IO ADC_OFFSETCORR_Type OFFSETCORR; /**< \brief Offset: 0x12 (R/W 16) Offset Correction */ + __IO ADC_SWTRIG_Type SWTRIG; /**< \brief Offset: 0x14 (R/W 8) Software Trigger */ + RoReg8 Reserved2[0x17]; + __IO ADC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x2C (R/W 8) Interrupt Enable Clear */ + __IO ADC_INTENSET_Type INTENSET; /**< \brief Offset: 0x2D (R/W 8) Interrupt Enable Set */ + __IO ADC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x2E (R/W 8) Interrupt Flag Status and Clear */ + __I ADC_STATUS_Type STATUS; /**< \brief Offset: 0x2F (R/ 8) Status */ + __I ADC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x30 (R/ 32) Synchronization Busy */ + __O ADC_DSEQDATA_Type DSEQDATA; /**< \brief Offset: 0x34 ( /W 32) DMA Sequencial Data */ + __IO ADC_DSEQCTRL_Type DSEQCTRL; /**< \brief Offset: 0x38 (R/W 32) DMA Sequential Control */ + __I ADC_DSEQSTAT_Type DSEQSTAT; /**< \brief Offset: 0x3C (R/ 32) DMA Sequencial Status */ + __I ADC_RESULT_Type RESULT; /**< \brief Offset: 0x40 (R/ 16) Result Conversion Value */ + RoReg8 Reserved3[0x2]; + __I ADC_RESS_Type RESS; /**< \brief Offset: 0x44 (R/ 16) Last Sample Result */ + RoReg8 Reserved4[0x2]; + __IO ADC_CALIB_Type CALIB; /**< \brief Offset: 0x48 (R/W 16) Calibration */ +} Adc; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_ADC_COMPONENT_ */ diff --git a/lib/samd51/samd51a/include/component/aes.h b/lib/samd51/samd51a/include/component/aes.h index 1d1c0f9..eca6f87 100644 --- a/lib/samd51/samd51a/include/component/aes.h +++ b/lib/samd51/samd51a/include/component/aes.h @@ -1,375 +1,375 @@ -/** - * \file - * - * \brief Component description for AES - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_AES_COMPONENT_ -#define _SAMD51_AES_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR AES */ -/* ========================================================================== */ -/** \addtogroup SAMD51_AES Advanced Encryption Standard */ -/*@{*/ - -#define AES_U2238 -#define REV_AES 0x220 - -/* -------- AES_CTRLA : (AES Offset: 0x00) (R/W 32) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWRST:1; /*!< bit: 0 Software Reset */ - uint32_t ENABLE:1; /*!< bit: 1 Enable */ - uint32_t AESMODE:3; /*!< bit: 2.. 4 AES Modes of operation */ - uint32_t CFBS:3; /*!< bit: 5.. 7 Cipher Feedback Block Size */ - uint32_t KEYSIZE:2; /*!< bit: 8.. 9 Encryption Key Size */ - uint32_t CIPHER:1; /*!< bit: 10 Cipher Mode */ - uint32_t STARTMODE:1; /*!< bit: 11 Start Mode Select */ - uint32_t LOD:1; /*!< bit: 12 Last Output Data Mode */ - uint32_t KEYGEN:1; /*!< bit: 13 Last Key Generation */ - uint32_t XORKEY:1; /*!< bit: 14 XOR Key Operation */ - uint32_t :1; /*!< bit: 15 Reserved */ - uint32_t CTYPE:4; /*!< bit: 16..19 Counter Measure Type */ - uint32_t :12; /*!< bit: 20..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} AES_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_CTRLA_OFFSET 0x00 /**< \brief (AES_CTRLA offset) Control A */ -#define AES_CTRLA_RESETVALUE _U_(0x00000000) /**< \brief (AES_CTRLA reset_value) Control A */ - -#define AES_CTRLA_SWRST_Pos 0 /**< \brief (AES_CTRLA) Software Reset */ -#define AES_CTRLA_SWRST (_U_(0x1) << AES_CTRLA_SWRST_Pos) -#define AES_CTRLA_ENABLE_Pos 1 /**< \brief (AES_CTRLA) Enable */ -#define AES_CTRLA_ENABLE (_U_(0x1) << AES_CTRLA_ENABLE_Pos) -#define AES_CTRLA_AESMODE_Pos 2 /**< \brief (AES_CTRLA) AES Modes of operation */ -#define AES_CTRLA_AESMODE_Msk (_U_(0x7) << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE(value) (AES_CTRLA_AESMODE_Msk & ((value) << AES_CTRLA_AESMODE_Pos)) -#define AES_CTRLA_AESMODE_ECB_Val _U_(0x0) /**< \brief (AES_CTRLA) Electronic code book mode */ -#define AES_CTRLA_AESMODE_CBC_Val _U_(0x1) /**< \brief (AES_CTRLA) Cipher block chaining mode */ -#define AES_CTRLA_AESMODE_OFB_Val _U_(0x2) /**< \brief (AES_CTRLA) Output feedback mode */ -#define AES_CTRLA_AESMODE_CFB_Val _U_(0x3) /**< \brief (AES_CTRLA) Cipher feedback mode */ -#define AES_CTRLA_AESMODE_COUNTER_Val _U_(0x4) /**< \brief (AES_CTRLA) Counter mode */ -#define AES_CTRLA_AESMODE_CCM_Val _U_(0x5) /**< \brief (AES_CTRLA) CCM mode */ -#define AES_CTRLA_AESMODE_GCM_Val _U_(0x6) /**< \brief (AES_CTRLA) Galois counter mode */ -#define AES_CTRLA_AESMODE_ECB (AES_CTRLA_AESMODE_ECB_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE_CBC (AES_CTRLA_AESMODE_CBC_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE_OFB (AES_CTRLA_AESMODE_OFB_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE_CFB (AES_CTRLA_AESMODE_CFB_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE_COUNTER (AES_CTRLA_AESMODE_COUNTER_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE_CCM (AES_CTRLA_AESMODE_CCM_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_AESMODE_GCM (AES_CTRLA_AESMODE_GCM_Val << AES_CTRLA_AESMODE_Pos) -#define AES_CTRLA_CFBS_Pos 5 /**< \brief (AES_CTRLA) Cipher Feedback Block Size */ -#define AES_CTRLA_CFBS_Msk (_U_(0x7) << AES_CTRLA_CFBS_Pos) -#define AES_CTRLA_CFBS(value) (AES_CTRLA_CFBS_Msk & ((value) << AES_CTRLA_CFBS_Pos)) -#define AES_CTRLA_CFBS_128BIT_Val _U_(0x0) /**< \brief (AES_CTRLA) 128-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ -#define AES_CTRLA_CFBS_64BIT_Val _U_(0x1) /**< \brief (AES_CTRLA) 64-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ -#define AES_CTRLA_CFBS_32BIT_Val _U_(0x2) /**< \brief (AES_CTRLA) 32-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ -#define AES_CTRLA_CFBS_16BIT_Val _U_(0x3) /**< \brief (AES_CTRLA) 16-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ -#define AES_CTRLA_CFBS_8BIT_Val _U_(0x4) /**< \brief (AES_CTRLA) 8-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ -#define AES_CTRLA_CFBS_128BIT (AES_CTRLA_CFBS_128BIT_Val << AES_CTRLA_CFBS_Pos) -#define AES_CTRLA_CFBS_64BIT (AES_CTRLA_CFBS_64BIT_Val << AES_CTRLA_CFBS_Pos) -#define AES_CTRLA_CFBS_32BIT (AES_CTRLA_CFBS_32BIT_Val << AES_CTRLA_CFBS_Pos) -#define AES_CTRLA_CFBS_16BIT (AES_CTRLA_CFBS_16BIT_Val << AES_CTRLA_CFBS_Pos) -#define AES_CTRLA_CFBS_8BIT (AES_CTRLA_CFBS_8BIT_Val << AES_CTRLA_CFBS_Pos) -#define AES_CTRLA_KEYSIZE_Pos 8 /**< \brief (AES_CTRLA) Encryption Key Size */ -#define AES_CTRLA_KEYSIZE_Msk (_U_(0x3) << AES_CTRLA_KEYSIZE_Pos) -#define AES_CTRLA_KEYSIZE(value) (AES_CTRLA_KEYSIZE_Msk & ((value) << AES_CTRLA_KEYSIZE_Pos)) -#define AES_CTRLA_KEYSIZE_128BIT_Val _U_(0x0) /**< \brief (AES_CTRLA) 128-bit Key for Encryption / Decryption */ -#define AES_CTRLA_KEYSIZE_192BIT_Val _U_(0x1) /**< \brief (AES_CTRLA) 192-bit Key for Encryption / Decryption */ -#define AES_CTRLA_KEYSIZE_256BIT_Val _U_(0x2) /**< \brief (AES_CTRLA) 256-bit Key for Encryption / Decryption */ -#define AES_CTRLA_KEYSIZE_128BIT (AES_CTRLA_KEYSIZE_128BIT_Val << AES_CTRLA_KEYSIZE_Pos) -#define AES_CTRLA_KEYSIZE_192BIT (AES_CTRLA_KEYSIZE_192BIT_Val << AES_CTRLA_KEYSIZE_Pos) -#define AES_CTRLA_KEYSIZE_256BIT (AES_CTRLA_KEYSIZE_256BIT_Val << AES_CTRLA_KEYSIZE_Pos) -#define AES_CTRLA_CIPHER_Pos 10 /**< \brief (AES_CTRLA) Cipher Mode */ -#define AES_CTRLA_CIPHER (_U_(0x1) << AES_CTRLA_CIPHER_Pos) -#define AES_CTRLA_CIPHER_DEC_Val _U_(0x0) /**< \brief (AES_CTRLA) Decryption */ -#define AES_CTRLA_CIPHER_ENC_Val _U_(0x1) /**< \brief (AES_CTRLA) Encryption */ -#define AES_CTRLA_CIPHER_DEC (AES_CTRLA_CIPHER_DEC_Val << AES_CTRLA_CIPHER_Pos) -#define AES_CTRLA_CIPHER_ENC (AES_CTRLA_CIPHER_ENC_Val << AES_CTRLA_CIPHER_Pos) -#define AES_CTRLA_STARTMODE_Pos 11 /**< \brief (AES_CTRLA) Start Mode Select */ -#define AES_CTRLA_STARTMODE (_U_(0x1) << AES_CTRLA_STARTMODE_Pos) -#define AES_CTRLA_STARTMODE_MANUAL_Val _U_(0x0) /**< \brief (AES_CTRLA) Start Encryption / Decryption in Manual mode */ -#define AES_CTRLA_STARTMODE_AUTO_Val _U_(0x1) /**< \brief (AES_CTRLA) Start Encryption / Decryption in Auto mode */ -#define AES_CTRLA_STARTMODE_MANUAL (AES_CTRLA_STARTMODE_MANUAL_Val << AES_CTRLA_STARTMODE_Pos) -#define AES_CTRLA_STARTMODE_AUTO (AES_CTRLA_STARTMODE_AUTO_Val << AES_CTRLA_STARTMODE_Pos) -#define AES_CTRLA_LOD_Pos 12 /**< \brief (AES_CTRLA) Last Output Data Mode */ -#define AES_CTRLA_LOD (_U_(0x1) << AES_CTRLA_LOD_Pos) -#define AES_CTRLA_LOD_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ -#define AES_CTRLA_LOD_LAST_Val _U_(0x1) /**< \brief (AES_CTRLA) Start encryption in Last Output Data mode */ -#define AES_CTRLA_LOD_NONE (AES_CTRLA_LOD_NONE_Val << AES_CTRLA_LOD_Pos) -#define AES_CTRLA_LOD_LAST (AES_CTRLA_LOD_LAST_Val << AES_CTRLA_LOD_Pos) -#define AES_CTRLA_KEYGEN_Pos 13 /**< \brief (AES_CTRLA) Last Key Generation */ -#define AES_CTRLA_KEYGEN (_U_(0x1) << AES_CTRLA_KEYGEN_Pos) -#define AES_CTRLA_KEYGEN_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ -#define AES_CTRLA_KEYGEN_LAST_Val _U_(0x1) /**< \brief (AES_CTRLA) Start Computation of the last NK words of the expanded key */ -#define AES_CTRLA_KEYGEN_NONE (AES_CTRLA_KEYGEN_NONE_Val << AES_CTRLA_KEYGEN_Pos) -#define AES_CTRLA_KEYGEN_LAST (AES_CTRLA_KEYGEN_LAST_Val << AES_CTRLA_KEYGEN_Pos) -#define AES_CTRLA_XORKEY_Pos 14 /**< \brief (AES_CTRLA) XOR Key Operation */ -#define AES_CTRLA_XORKEY (_U_(0x1) << AES_CTRLA_XORKEY_Pos) -#define AES_CTRLA_XORKEY_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ -#define AES_CTRLA_XORKEY_XOR_Val _U_(0x1) /**< \brief (AES_CTRLA) The user keyword gets XORed with the previous keyword register content. */ -#define AES_CTRLA_XORKEY_NONE (AES_CTRLA_XORKEY_NONE_Val << AES_CTRLA_XORKEY_Pos) -#define AES_CTRLA_XORKEY_XOR (AES_CTRLA_XORKEY_XOR_Val << AES_CTRLA_XORKEY_Pos) -#define AES_CTRLA_CTYPE_Pos 16 /**< \brief (AES_CTRLA) Counter Measure Type */ -#define AES_CTRLA_CTYPE_Msk (_U_(0xF) << AES_CTRLA_CTYPE_Pos) -#define AES_CTRLA_CTYPE(value) (AES_CTRLA_CTYPE_Msk & ((value) << AES_CTRLA_CTYPE_Pos)) -#define AES_CTRLA_MASK _U_(0x000F7FFF) /**< \brief (AES_CTRLA) MASK Register */ - -/* -------- AES_CTRLB : (AES Offset: 0x04) (R/W 8) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t START:1; /*!< bit: 0 Start Encryption/Decryption */ - uint8_t NEWMSG:1; /*!< bit: 1 New message */ - uint8_t EOM:1; /*!< bit: 2 End of message */ - uint8_t GFMUL:1; /*!< bit: 3 GF Multiplication */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AES_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_CTRLB_OFFSET 0x04 /**< \brief (AES_CTRLB offset) Control B */ -#define AES_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AES_CTRLB reset_value) Control B */ - -#define AES_CTRLB_START_Pos 0 /**< \brief (AES_CTRLB) Start Encryption/Decryption */ -#define AES_CTRLB_START (_U_(0x1) << AES_CTRLB_START_Pos) -#define AES_CTRLB_NEWMSG_Pos 1 /**< \brief (AES_CTRLB) New message */ -#define AES_CTRLB_NEWMSG (_U_(0x1) << AES_CTRLB_NEWMSG_Pos) -#define AES_CTRLB_EOM_Pos 2 /**< \brief (AES_CTRLB) End of message */ -#define AES_CTRLB_EOM (_U_(0x1) << AES_CTRLB_EOM_Pos) -#define AES_CTRLB_GFMUL_Pos 3 /**< \brief (AES_CTRLB) GF Multiplication */ -#define AES_CTRLB_GFMUL (_U_(0x1) << AES_CTRLB_GFMUL_Pos) -#define AES_CTRLB_MASK _U_(0x0F) /**< \brief (AES_CTRLB) MASK Register */ - -/* -------- AES_INTENCLR : (AES Offset: 0x05) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete Interrupt Enable */ - uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete Interrupt Enable */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AES_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_INTENCLR_OFFSET 0x05 /**< \brief (AES_INTENCLR offset) Interrupt Enable Clear */ -#define AES_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AES_INTENCLR reset_value) Interrupt Enable Clear */ - -#define AES_INTENCLR_ENCCMP_Pos 0 /**< \brief (AES_INTENCLR) Encryption Complete Interrupt Enable */ -#define AES_INTENCLR_ENCCMP (_U_(0x1) << AES_INTENCLR_ENCCMP_Pos) -#define AES_INTENCLR_GFMCMP_Pos 1 /**< \brief (AES_INTENCLR) GF Multiplication Complete Interrupt Enable */ -#define AES_INTENCLR_GFMCMP (_U_(0x1) << AES_INTENCLR_GFMCMP_Pos) -#define AES_INTENCLR_MASK _U_(0x03) /**< \brief (AES_INTENCLR) MASK Register */ - -/* -------- AES_INTENSET : (AES Offset: 0x06) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete Interrupt Enable */ - uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete Interrupt Enable */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AES_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_INTENSET_OFFSET 0x06 /**< \brief (AES_INTENSET offset) Interrupt Enable Set */ -#define AES_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AES_INTENSET reset_value) Interrupt Enable Set */ - -#define AES_INTENSET_ENCCMP_Pos 0 /**< \brief (AES_INTENSET) Encryption Complete Interrupt Enable */ -#define AES_INTENSET_ENCCMP (_U_(0x1) << AES_INTENSET_ENCCMP_Pos) -#define AES_INTENSET_GFMCMP_Pos 1 /**< \brief (AES_INTENSET) GF Multiplication Complete Interrupt Enable */ -#define AES_INTENSET_GFMCMP (_U_(0x1) << AES_INTENSET_GFMCMP_Pos) -#define AES_INTENSET_MASK _U_(0x03) /**< \brief (AES_INTENSET) MASK Register */ - -/* -------- AES_INTFLAG : (AES Offset: 0x07) (R/W 8) Interrupt Flag Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete */ - __I uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete */ - __I uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AES_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_INTFLAG_OFFSET 0x07 /**< \brief (AES_INTFLAG offset) Interrupt Flag Status */ -#define AES_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AES_INTFLAG reset_value) Interrupt Flag Status */ - -#define AES_INTFLAG_ENCCMP_Pos 0 /**< \brief (AES_INTFLAG) Encryption Complete */ -#define AES_INTFLAG_ENCCMP (_U_(0x1) << AES_INTFLAG_ENCCMP_Pos) -#define AES_INTFLAG_GFMCMP_Pos 1 /**< \brief (AES_INTFLAG) GF Multiplication Complete */ -#define AES_INTFLAG_GFMCMP (_U_(0x1) << AES_INTFLAG_GFMCMP_Pos) -#define AES_INTFLAG_MASK _U_(0x03) /**< \brief (AES_INTFLAG) MASK Register */ - -/* -------- AES_DATABUFPTR : (AES Offset: 0x08) (R/W 8) Data buffer pointer -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t INDATAPTR:2; /*!< bit: 0.. 1 Input Data Pointer */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AES_DATABUFPTR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_DATABUFPTR_OFFSET 0x08 /**< \brief (AES_DATABUFPTR offset) Data buffer pointer */ -#define AES_DATABUFPTR_RESETVALUE _U_(0x00) /**< \brief (AES_DATABUFPTR reset_value) Data buffer pointer */ - -#define AES_DATABUFPTR_INDATAPTR_Pos 0 /**< \brief (AES_DATABUFPTR) Input Data Pointer */ -#define AES_DATABUFPTR_INDATAPTR_Msk (_U_(0x3) << AES_DATABUFPTR_INDATAPTR_Pos) -#define AES_DATABUFPTR_INDATAPTR(value) (AES_DATABUFPTR_INDATAPTR_Msk & ((value) << AES_DATABUFPTR_INDATAPTR_Pos)) -#define AES_DATABUFPTR_MASK _U_(0x03) /**< \brief (AES_DATABUFPTR) MASK Register */ - -/* -------- AES_DBGCTRL : (AES Offset: 0x09) (R/W 8) Debug control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} AES_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_DBGCTRL_OFFSET 0x09 /**< \brief (AES_DBGCTRL offset) Debug control */ -#define AES_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (AES_DBGCTRL reset_value) Debug control */ - -#define AES_DBGCTRL_DBGRUN_Pos 0 /**< \brief (AES_DBGCTRL) Debug Run */ -#define AES_DBGCTRL_DBGRUN (_U_(0x1) << AES_DBGCTRL_DBGRUN_Pos) -#define AES_DBGCTRL_MASK _U_(0x01) /**< \brief (AES_DBGCTRL) MASK Register */ - -/* -------- AES_KEYWORD : (AES Offset: 0x0C) ( /W 32) Keyword n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_KEYWORD_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_KEYWORD_OFFSET 0x0C /**< \brief (AES_KEYWORD offset) Keyword n */ -#define AES_KEYWORD_RESETVALUE _U_(0x00000000) /**< \brief (AES_KEYWORD reset_value) Keyword n */ -#define AES_KEYWORD_MASK _U_(0xFFFFFFFF) /**< \brief (AES_KEYWORD) MASK Register */ - -/* -------- AES_INDATA : (AES Offset: 0x38) (R/W 32) Indata -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_INDATA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_INDATA_OFFSET 0x38 /**< \brief (AES_INDATA offset) Indata */ -#define AES_INDATA_RESETVALUE _U_(0x00000000) /**< \brief (AES_INDATA reset_value) Indata */ -#define AES_INDATA_MASK _U_(0xFFFFFFFF) /**< \brief (AES_INDATA) MASK Register */ - -/* -------- AES_INTVECTV : (AES Offset: 0x3C) ( /W 32) Initialisation Vector n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_INTVECTV_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_INTVECTV_OFFSET 0x3C /**< \brief (AES_INTVECTV offset) Initialisation Vector n */ -#define AES_INTVECTV_RESETVALUE _U_(0x00000000) /**< \brief (AES_INTVECTV reset_value) Initialisation Vector n */ -#define AES_INTVECTV_MASK _U_(0xFFFFFFFF) /**< \brief (AES_INTVECTV) MASK Register */ - -/* -------- AES_HASHKEY : (AES Offset: 0x5C) (R/W 32) Hash key n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_HASHKEY_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_HASHKEY_OFFSET 0x5C /**< \brief (AES_HASHKEY offset) Hash key n */ -#define AES_HASHKEY_RESETVALUE _U_(0x00000000) /**< \brief (AES_HASHKEY reset_value) Hash key n */ -#define AES_HASHKEY_MASK _U_(0xFFFFFFFF) /**< \brief (AES_HASHKEY) MASK Register */ - -/* -------- AES_GHASH : (AES Offset: 0x6C) (R/W 32) Galois Hash n -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_GHASH_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_GHASH_OFFSET 0x6C /**< \brief (AES_GHASH offset) Galois Hash n */ -#define AES_GHASH_RESETVALUE _U_(0x00000000) /**< \brief (AES_GHASH reset_value) Galois Hash n */ -#define AES_GHASH_MASK _U_(0xFFFFFFFF) /**< \brief (AES_GHASH) MASK Register */ - -/* -------- AES_CIPLEN : (AES Offset: 0x80) (R/W 32) Cipher Length -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_CIPLEN_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_CIPLEN_OFFSET 0x80 /**< \brief (AES_CIPLEN offset) Cipher Length */ -#define AES_CIPLEN_RESETVALUE _U_(0x00000000) /**< \brief (AES_CIPLEN reset_value) Cipher Length */ -#define AES_CIPLEN_MASK _U_(0xFFFFFFFF) /**< \brief (AES_CIPLEN) MASK Register */ - -/* -------- AES_RANDSEED : (AES Offset: 0x84) (R/W 32) Random Seed -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - uint32_t reg; /*!< Type used for register access */ -} AES_RANDSEED_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define AES_RANDSEED_OFFSET 0x84 /**< \brief (AES_RANDSEED offset) Random Seed */ -#define AES_RANDSEED_RESETVALUE _U_(0x00000000) /**< \brief (AES_RANDSEED reset_value) Random Seed */ -#define AES_RANDSEED_MASK _U_(0xFFFFFFFF) /**< \brief (AES_RANDSEED) MASK Register */ - -/** \brief AES hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO AES_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 32) Control A */ - __IO AES_CTRLB_Type CTRLB; /**< \brief Offset: 0x04 (R/W 8) Control B */ - __IO AES_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Clear */ - __IO AES_INTENSET_Type INTENSET; /**< \brief Offset: 0x06 (R/W 8) Interrupt Enable Set */ - __IO AES_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x07 (R/W 8) Interrupt Flag Status */ - __IO AES_DATABUFPTR_Type DATABUFPTR; /**< \brief Offset: 0x08 (R/W 8) Data buffer pointer */ - __IO AES_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x09 (R/W 8) Debug control */ - RoReg8 Reserved1[0x2]; - __O AES_KEYWORD_Type KEYWORD[8]; /**< \brief Offset: 0x0C ( /W 32) Keyword n */ - RoReg8 Reserved2[0xC]; - __IO AES_INDATA_Type INDATA; /**< \brief Offset: 0x38 (R/W 32) Indata */ - __O AES_INTVECTV_Type INTVECTV[4]; /**< \brief Offset: 0x3C ( /W 32) Initialisation Vector n */ - RoReg8 Reserved3[0x10]; - __IO AES_HASHKEY_Type HASHKEY[4]; /**< \brief Offset: 0x5C (R/W 32) Hash key n */ - __IO AES_GHASH_Type GHASH[4]; /**< \brief Offset: 0x6C (R/W 32) Galois Hash n */ - RoReg8 Reserved4[0x4]; - __IO AES_CIPLEN_Type CIPLEN; /**< \brief Offset: 0x80 (R/W 32) Cipher Length */ - __IO AES_RANDSEED_Type RANDSEED; /**< \brief Offset: 0x84 (R/W 32) Random Seed */ -} Aes; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD51_AES_COMPONENT_ */ +/** + * \file + * + * \brief Component description for AES + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_AES_COMPONENT_ +#define _SAMD51_AES_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR AES */ +/* ========================================================================== */ +/** \addtogroup SAMD51_AES Advanced Encryption Standard */ +/*@{*/ + +#define AES_U2238 +#define REV_AES 0x220 + +/* -------- AES_CTRLA : (AES Offset: 0x00) (R/W 32) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Software Reset */ + uint32_t ENABLE:1; /*!< bit: 1 Enable */ + uint32_t AESMODE:3; /*!< bit: 2.. 4 AES Modes of operation */ + uint32_t CFBS:3; /*!< bit: 5.. 7 Cipher Feedback Block Size */ + uint32_t KEYSIZE:2; /*!< bit: 8.. 9 Encryption Key Size */ + uint32_t CIPHER:1; /*!< bit: 10 Cipher Mode */ + uint32_t STARTMODE:1; /*!< bit: 11 Start Mode Select */ + uint32_t LOD:1; /*!< bit: 12 Last Output Data Mode */ + uint32_t KEYGEN:1; /*!< bit: 13 Last Key Generation */ + uint32_t XORKEY:1; /*!< bit: 14 XOR Key Operation */ + uint32_t :1; /*!< bit: 15 Reserved */ + uint32_t CTYPE:4; /*!< bit: 16..19 Counter Measure Type */ + uint32_t :12; /*!< bit: 20..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} AES_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_CTRLA_OFFSET 0x00 /**< \brief (AES_CTRLA offset) Control A */ +#define AES_CTRLA_RESETVALUE _U_(0x00000000) /**< \brief (AES_CTRLA reset_value) Control A */ + +#define AES_CTRLA_SWRST_Pos 0 /**< \brief (AES_CTRLA) Software Reset */ +#define AES_CTRLA_SWRST (_U_(0x1) << AES_CTRLA_SWRST_Pos) +#define AES_CTRLA_ENABLE_Pos 1 /**< \brief (AES_CTRLA) Enable */ +#define AES_CTRLA_ENABLE (_U_(0x1) << AES_CTRLA_ENABLE_Pos) +#define AES_CTRLA_AESMODE_Pos 2 /**< \brief (AES_CTRLA) AES Modes of operation */ +#define AES_CTRLA_AESMODE_Msk (_U_(0x7) << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE(value) (AES_CTRLA_AESMODE_Msk & ((value) << AES_CTRLA_AESMODE_Pos)) +#define AES_CTRLA_AESMODE_ECB_Val _U_(0x0) /**< \brief (AES_CTRLA) Electronic code book mode */ +#define AES_CTRLA_AESMODE_CBC_Val _U_(0x1) /**< \brief (AES_CTRLA) Cipher block chaining mode */ +#define AES_CTRLA_AESMODE_OFB_Val _U_(0x2) /**< \brief (AES_CTRLA) Output feedback mode */ +#define AES_CTRLA_AESMODE_CFB_Val _U_(0x3) /**< \brief (AES_CTRLA) Cipher feedback mode */ +#define AES_CTRLA_AESMODE_COUNTER_Val _U_(0x4) /**< \brief (AES_CTRLA) Counter mode */ +#define AES_CTRLA_AESMODE_CCM_Val _U_(0x5) /**< \brief (AES_CTRLA) CCM mode */ +#define AES_CTRLA_AESMODE_GCM_Val _U_(0x6) /**< \brief (AES_CTRLA) Galois counter mode */ +#define AES_CTRLA_AESMODE_ECB (AES_CTRLA_AESMODE_ECB_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_CBC (AES_CTRLA_AESMODE_CBC_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_OFB (AES_CTRLA_AESMODE_OFB_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_CFB (AES_CTRLA_AESMODE_CFB_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_COUNTER (AES_CTRLA_AESMODE_COUNTER_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_CCM (AES_CTRLA_AESMODE_CCM_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_AESMODE_GCM (AES_CTRLA_AESMODE_GCM_Val << AES_CTRLA_AESMODE_Pos) +#define AES_CTRLA_CFBS_Pos 5 /**< \brief (AES_CTRLA) Cipher Feedback Block Size */ +#define AES_CTRLA_CFBS_Msk (_U_(0x7) << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS(value) (AES_CTRLA_CFBS_Msk & ((value) << AES_CTRLA_CFBS_Pos)) +#define AES_CTRLA_CFBS_128BIT_Val _U_(0x0) /**< \brief (AES_CTRLA) 128-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_64BIT_Val _U_(0x1) /**< \brief (AES_CTRLA) 64-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_32BIT_Val _U_(0x2) /**< \brief (AES_CTRLA) 32-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_16BIT_Val _U_(0x3) /**< \brief (AES_CTRLA) 16-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_8BIT_Val _U_(0x4) /**< \brief (AES_CTRLA) 8-bit Input data block for Encryption/Decryption in Cipher Feedback mode */ +#define AES_CTRLA_CFBS_128BIT (AES_CTRLA_CFBS_128BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_64BIT (AES_CTRLA_CFBS_64BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_32BIT (AES_CTRLA_CFBS_32BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_16BIT (AES_CTRLA_CFBS_16BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_CFBS_8BIT (AES_CTRLA_CFBS_8BIT_Val << AES_CTRLA_CFBS_Pos) +#define AES_CTRLA_KEYSIZE_Pos 8 /**< \brief (AES_CTRLA) Encryption Key Size */ +#define AES_CTRLA_KEYSIZE_Msk (_U_(0x3) << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_KEYSIZE(value) (AES_CTRLA_KEYSIZE_Msk & ((value) << AES_CTRLA_KEYSIZE_Pos)) +#define AES_CTRLA_KEYSIZE_128BIT_Val _U_(0x0) /**< \brief (AES_CTRLA) 128-bit Key for Encryption / Decryption */ +#define AES_CTRLA_KEYSIZE_192BIT_Val _U_(0x1) /**< \brief (AES_CTRLA) 192-bit Key for Encryption / Decryption */ +#define AES_CTRLA_KEYSIZE_256BIT_Val _U_(0x2) /**< \brief (AES_CTRLA) 256-bit Key for Encryption / Decryption */ +#define AES_CTRLA_KEYSIZE_128BIT (AES_CTRLA_KEYSIZE_128BIT_Val << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_KEYSIZE_192BIT (AES_CTRLA_KEYSIZE_192BIT_Val << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_KEYSIZE_256BIT (AES_CTRLA_KEYSIZE_256BIT_Val << AES_CTRLA_KEYSIZE_Pos) +#define AES_CTRLA_CIPHER_Pos 10 /**< \brief (AES_CTRLA) Cipher Mode */ +#define AES_CTRLA_CIPHER (_U_(0x1) << AES_CTRLA_CIPHER_Pos) +#define AES_CTRLA_CIPHER_DEC_Val _U_(0x0) /**< \brief (AES_CTRLA) Decryption */ +#define AES_CTRLA_CIPHER_ENC_Val _U_(0x1) /**< \brief (AES_CTRLA) Encryption */ +#define AES_CTRLA_CIPHER_DEC (AES_CTRLA_CIPHER_DEC_Val << AES_CTRLA_CIPHER_Pos) +#define AES_CTRLA_CIPHER_ENC (AES_CTRLA_CIPHER_ENC_Val << AES_CTRLA_CIPHER_Pos) +#define AES_CTRLA_STARTMODE_Pos 11 /**< \brief (AES_CTRLA) Start Mode Select */ +#define AES_CTRLA_STARTMODE (_U_(0x1) << AES_CTRLA_STARTMODE_Pos) +#define AES_CTRLA_STARTMODE_MANUAL_Val _U_(0x0) /**< \brief (AES_CTRLA) Start Encryption / Decryption in Manual mode */ +#define AES_CTRLA_STARTMODE_AUTO_Val _U_(0x1) /**< \brief (AES_CTRLA) Start Encryption / Decryption in Auto mode */ +#define AES_CTRLA_STARTMODE_MANUAL (AES_CTRLA_STARTMODE_MANUAL_Val << AES_CTRLA_STARTMODE_Pos) +#define AES_CTRLA_STARTMODE_AUTO (AES_CTRLA_STARTMODE_AUTO_Val << AES_CTRLA_STARTMODE_Pos) +#define AES_CTRLA_LOD_Pos 12 /**< \brief (AES_CTRLA) Last Output Data Mode */ +#define AES_CTRLA_LOD (_U_(0x1) << AES_CTRLA_LOD_Pos) +#define AES_CTRLA_LOD_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ +#define AES_CTRLA_LOD_LAST_Val _U_(0x1) /**< \brief (AES_CTRLA) Start encryption in Last Output Data mode */ +#define AES_CTRLA_LOD_NONE (AES_CTRLA_LOD_NONE_Val << AES_CTRLA_LOD_Pos) +#define AES_CTRLA_LOD_LAST (AES_CTRLA_LOD_LAST_Val << AES_CTRLA_LOD_Pos) +#define AES_CTRLA_KEYGEN_Pos 13 /**< \brief (AES_CTRLA) Last Key Generation */ +#define AES_CTRLA_KEYGEN (_U_(0x1) << AES_CTRLA_KEYGEN_Pos) +#define AES_CTRLA_KEYGEN_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ +#define AES_CTRLA_KEYGEN_LAST_Val _U_(0x1) /**< \brief (AES_CTRLA) Start Computation of the last NK words of the expanded key */ +#define AES_CTRLA_KEYGEN_NONE (AES_CTRLA_KEYGEN_NONE_Val << AES_CTRLA_KEYGEN_Pos) +#define AES_CTRLA_KEYGEN_LAST (AES_CTRLA_KEYGEN_LAST_Val << AES_CTRLA_KEYGEN_Pos) +#define AES_CTRLA_XORKEY_Pos 14 /**< \brief (AES_CTRLA) XOR Key Operation */ +#define AES_CTRLA_XORKEY (_U_(0x1) << AES_CTRLA_XORKEY_Pos) +#define AES_CTRLA_XORKEY_NONE_Val _U_(0x0) /**< \brief (AES_CTRLA) No effect */ +#define AES_CTRLA_XORKEY_XOR_Val _U_(0x1) /**< \brief (AES_CTRLA) The user keyword gets XORed with the previous keyword register content. */ +#define AES_CTRLA_XORKEY_NONE (AES_CTRLA_XORKEY_NONE_Val << AES_CTRLA_XORKEY_Pos) +#define AES_CTRLA_XORKEY_XOR (AES_CTRLA_XORKEY_XOR_Val << AES_CTRLA_XORKEY_Pos) +#define AES_CTRLA_CTYPE_Pos 16 /**< \brief (AES_CTRLA) Counter Measure Type */ +#define AES_CTRLA_CTYPE_Msk (_U_(0xF) << AES_CTRLA_CTYPE_Pos) +#define AES_CTRLA_CTYPE(value) (AES_CTRLA_CTYPE_Msk & ((value) << AES_CTRLA_CTYPE_Pos)) +#define AES_CTRLA_MASK _U_(0x000F7FFF) /**< \brief (AES_CTRLA) MASK Register */ + +/* -------- AES_CTRLB : (AES Offset: 0x04) (R/W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t START:1; /*!< bit: 0 Start Encryption/Decryption */ + uint8_t NEWMSG:1; /*!< bit: 1 New message */ + uint8_t EOM:1; /*!< bit: 2 End of message */ + uint8_t GFMUL:1; /*!< bit: 3 GF Multiplication */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_CTRLB_OFFSET 0x04 /**< \brief (AES_CTRLB offset) Control B */ +#define AES_CTRLB_RESETVALUE _U_(0x00) /**< \brief (AES_CTRLB reset_value) Control B */ + +#define AES_CTRLB_START_Pos 0 /**< \brief (AES_CTRLB) Start Encryption/Decryption */ +#define AES_CTRLB_START (_U_(0x1) << AES_CTRLB_START_Pos) +#define AES_CTRLB_NEWMSG_Pos 1 /**< \brief (AES_CTRLB) New message */ +#define AES_CTRLB_NEWMSG (_U_(0x1) << AES_CTRLB_NEWMSG_Pos) +#define AES_CTRLB_EOM_Pos 2 /**< \brief (AES_CTRLB) End of message */ +#define AES_CTRLB_EOM (_U_(0x1) << AES_CTRLB_EOM_Pos) +#define AES_CTRLB_GFMUL_Pos 3 /**< \brief (AES_CTRLB) GF Multiplication */ +#define AES_CTRLB_GFMUL (_U_(0x1) << AES_CTRLB_GFMUL_Pos) +#define AES_CTRLB_MASK _U_(0x0F) /**< \brief (AES_CTRLB) MASK Register */ + +/* -------- AES_INTENCLR : (AES Offset: 0x05) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete Interrupt Enable */ + uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete Interrupt Enable */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTENCLR_OFFSET 0x05 /**< \brief (AES_INTENCLR offset) Interrupt Enable Clear */ +#define AES_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (AES_INTENCLR reset_value) Interrupt Enable Clear */ + +#define AES_INTENCLR_ENCCMP_Pos 0 /**< \brief (AES_INTENCLR) Encryption Complete Interrupt Enable */ +#define AES_INTENCLR_ENCCMP (_U_(0x1) << AES_INTENCLR_ENCCMP_Pos) +#define AES_INTENCLR_GFMCMP_Pos 1 /**< \brief (AES_INTENCLR) GF Multiplication Complete Interrupt Enable */ +#define AES_INTENCLR_GFMCMP (_U_(0x1) << AES_INTENCLR_GFMCMP_Pos) +#define AES_INTENCLR_MASK _U_(0x03) /**< \brief (AES_INTENCLR) MASK Register */ + +/* -------- AES_INTENSET : (AES Offset: 0x06) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete Interrupt Enable */ + uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete Interrupt Enable */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTENSET_OFFSET 0x06 /**< \brief (AES_INTENSET offset) Interrupt Enable Set */ +#define AES_INTENSET_RESETVALUE _U_(0x00) /**< \brief (AES_INTENSET reset_value) Interrupt Enable Set */ + +#define AES_INTENSET_ENCCMP_Pos 0 /**< \brief (AES_INTENSET) Encryption Complete Interrupt Enable */ +#define AES_INTENSET_ENCCMP (_U_(0x1) << AES_INTENSET_ENCCMP_Pos) +#define AES_INTENSET_GFMCMP_Pos 1 /**< \brief (AES_INTENSET) GF Multiplication Complete Interrupt Enable */ +#define AES_INTENSET_GFMCMP (_U_(0x1) << AES_INTENSET_GFMCMP_Pos) +#define AES_INTENSET_MASK _U_(0x03) /**< \brief (AES_INTENSET) MASK Register */ + +/* -------- AES_INTFLAG : (AES Offset: 0x07) (R/W 8) Interrupt Flag Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t ENCCMP:1; /*!< bit: 0 Encryption Complete */ + __I uint8_t GFMCMP:1; /*!< bit: 1 GF Multiplication Complete */ + __I uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTFLAG_OFFSET 0x07 /**< \brief (AES_INTFLAG offset) Interrupt Flag Status */ +#define AES_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (AES_INTFLAG reset_value) Interrupt Flag Status */ + +#define AES_INTFLAG_ENCCMP_Pos 0 /**< \brief (AES_INTFLAG) Encryption Complete */ +#define AES_INTFLAG_ENCCMP (_U_(0x1) << AES_INTFLAG_ENCCMP_Pos) +#define AES_INTFLAG_GFMCMP_Pos 1 /**< \brief (AES_INTFLAG) GF Multiplication Complete */ +#define AES_INTFLAG_GFMCMP (_U_(0x1) << AES_INTFLAG_GFMCMP_Pos) +#define AES_INTFLAG_MASK _U_(0x03) /**< \brief (AES_INTFLAG) MASK Register */ + +/* -------- AES_DATABUFPTR : (AES Offset: 0x08) (R/W 8) Data buffer pointer -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t INDATAPTR:2; /*!< bit: 0.. 1 Input Data Pointer */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_DATABUFPTR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_DATABUFPTR_OFFSET 0x08 /**< \brief (AES_DATABUFPTR offset) Data buffer pointer */ +#define AES_DATABUFPTR_RESETVALUE _U_(0x00) /**< \brief (AES_DATABUFPTR reset_value) Data buffer pointer */ + +#define AES_DATABUFPTR_INDATAPTR_Pos 0 /**< \brief (AES_DATABUFPTR) Input Data Pointer */ +#define AES_DATABUFPTR_INDATAPTR_Msk (_U_(0x3) << AES_DATABUFPTR_INDATAPTR_Pos) +#define AES_DATABUFPTR_INDATAPTR(value) (AES_DATABUFPTR_INDATAPTR_Msk & ((value) << AES_DATABUFPTR_INDATAPTR_Pos)) +#define AES_DATABUFPTR_MASK _U_(0x03) /**< \brief (AES_DATABUFPTR) MASK Register */ + +/* -------- AES_DBGCTRL : (AES Offset: 0x09) (R/W 8) Debug control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} AES_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_DBGCTRL_OFFSET 0x09 /**< \brief (AES_DBGCTRL offset) Debug control */ +#define AES_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (AES_DBGCTRL reset_value) Debug control */ + +#define AES_DBGCTRL_DBGRUN_Pos 0 /**< \brief (AES_DBGCTRL) Debug Run */ +#define AES_DBGCTRL_DBGRUN (_U_(0x1) << AES_DBGCTRL_DBGRUN_Pos) +#define AES_DBGCTRL_MASK _U_(0x01) /**< \brief (AES_DBGCTRL) MASK Register */ + +/* -------- AES_KEYWORD : (AES Offset: 0x0C) ( /W 32) Keyword n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_KEYWORD_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_KEYWORD_OFFSET 0x0C /**< \brief (AES_KEYWORD offset) Keyword n */ +#define AES_KEYWORD_RESETVALUE _U_(0x00000000) /**< \brief (AES_KEYWORD reset_value) Keyword n */ +#define AES_KEYWORD_MASK _U_(0xFFFFFFFF) /**< \brief (AES_KEYWORD) MASK Register */ + +/* -------- AES_INDATA : (AES Offset: 0x38) (R/W 32) Indata -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_INDATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INDATA_OFFSET 0x38 /**< \brief (AES_INDATA offset) Indata */ +#define AES_INDATA_RESETVALUE _U_(0x00000000) /**< \brief (AES_INDATA reset_value) Indata */ +#define AES_INDATA_MASK _U_(0xFFFFFFFF) /**< \brief (AES_INDATA) MASK Register */ + +/* -------- AES_INTVECTV : (AES Offset: 0x3C) ( /W 32) Initialisation Vector n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_INTVECTV_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_INTVECTV_OFFSET 0x3C /**< \brief (AES_INTVECTV offset) Initialisation Vector n */ +#define AES_INTVECTV_RESETVALUE _U_(0x00000000) /**< \brief (AES_INTVECTV reset_value) Initialisation Vector n */ +#define AES_INTVECTV_MASK _U_(0xFFFFFFFF) /**< \brief (AES_INTVECTV) MASK Register */ + +/* -------- AES_HASHKEY : (AES Offset: 0x5C) (R/W 32) Hash key n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_HASHKEY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_HASHKEY_OFFSET 0x5C /**< \brief (AES_HASHKEY offset) Hash key n */ +#define AES_HASHKEY_RESETVALUE _U_(0x00000000) /**< \brief (AES_HASHKEY reset_value) Hash key n */ +#define AES_HASHKEY_MASK _U_(0xFFFFFFFF) /**< \brief (AES_HASHKEY) MASK Register */ + +/* -------- AES_GHASH : (AES Offset: 0x6C) (R/W 32) Galois Hash n -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_GHASH_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_GHASH_OFFSET 0x6C /**< \brief (AES_GHASH offset) Galois Hash n */ +#define AES_GHASH_RESETVALUE _U_(0x00000000) /**< \brief (AES_GHASH reset_value) Galois Hash n */ +#define AES_GHASH_MASK _U_(0xFFFFFFFF) /**< \brief (AES_GHASH) MASK Register */ + +/* -------- AES_CIPLEN : (AES Offset: 0x80) (R/W 32) Cipher Length -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_CIPLEN_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_CIPLEN_OFFSET 0x80 /**< \brief (AES_CIPLEN offset) Cipher Length */ +#define AES_CIPLEN_RESETVALUE _U_(0x00000000) /**< \brief (AES_CIPLEN reset_value) Cipher Length */ +#define AES_CIPLEN_MASK _U_(0xFFFFFFFF) /**< \brief (AES_CIPLEN) MASK Register */ + +/* -------- AES_RANDSEED : (AES Offset: 0x84) (R/W 32) Random Seed -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + uint32_t reg; /*!< Type used for register access */ +} AES_RANDSEED_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define AES_RANDSEED_OFFSET 0x84 /**< \brief (AES_RANDSEED offset) Random Seed */ +#define AES_RANDSEED_RESETVALUE _U_(0x00000000) /**< \brief (AES_RANDSEED reset_value) Random Seed */ +#define AES_RANDSEED_MASK _U_(0xFFFFFFFF) /**< \brief (AES_RANDSEED) MASK Register */ + +/** \brief AES hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO AES_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 32) Control A */ + __IO AES_CTRLB_Type CTRLB; /**< \brief Offset: 0x04 (R/W 8) Control B */ + __IO AES_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Clear */ + __IO AES_INTENSET_Type INTENSET; /**< \brief Offset: 0x06 (R/W 8) Interrupt Enable Set */ + __IO AES_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x07 (R/W 8) Interrupt Flag Status */ + __IO AES_DATABUFPTR_Type DATABUFPTR; /**< \brief Offset: 0x08 (R/W 8) Data buffer pointer */ + __IO AES_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x09 (R/W 8) Debug control */ + RoReg8 Reserved1[0x2]; + __O AES_KEYWORD_Type KEYWORD[8]; /**< \brief Offset: 0x0C ( /W 32) Keyword n */ + RoReg8 Reserved2[0xC]; + __IO AES_INDATA_Type INDATA; /**< \brief Offset: 0x38 (R/W 32) Indata */ + __O AES_INTVECTV_Type INTVECTV[4]; /**< \brief Offset: 0x3C ( /W 32) Initialisation Vector n */ + RoReg8 Reserved3[0x10]; + __IO AES_HASHKEY_Type HASHKEY[4]; /**< \brief Offset: 0x5C (R/W 32) Hash key n */ + __IO AES_GHASH_Type GHASH[4]; /**< \brief Offset: 0x6C (R/W 32) Galois Hash n */ + RoReg8 Reserved4[0x4]; + __IO AES_CIPLEN_Type CIPLEN; /**< \brief Offset: 0x80 (R/W 32) Cipher Length */ + __IO AES_RANDSEED_Type RANDSEED; /**< \brief Offset: 0x84 (R/W 32) Random Seed */ +} Aes; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_AES_COMPONENT_ */ diff --git a/lib/samd51/samd51a/include/component/ccl.h b/lib/samd51/samd51a/include/component/ccl.h index b51acc8..6c71395 100644 --- a/lib/samd51/samd51a/include/component/ccl.h +++ b/lib/samd51/samd51a/include/component/ccl.h @@ -1,228 +1,228 @@ -/** - * \file - * - * \brief Component description for CCL - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_CCL_COMPONENT_ -#define _SAMD51_CCL_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR CCL */ -/* ========================================================================== */ -/** \addtogroup SAMD51_CCL Configurable Custom Logic */ -/*@{*/ - -#define CCL_U2225 -#define REV_CCL 0x110 - -/* -------- CCL_CTRL : (CCL Offset: 0x0) (R/W 8) Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Enable */ - uint8_t :4; /*!< bit: 2.. 5 Reserved */ - uint8_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ - uint8_t :1; /*!< bit: 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} CCL_CTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CCL_CTRL_OFFSET 0x0 /**< \brief (CCL_CTRL offset) Control */ -#define CCL_CTRL_RESETVALUE _U_(0x00) /**< \brief (CCL_CTRL reset_value) Control */ - -#define CCL_CTRL_SWRST_Pos 0 /**< \brief (CCL_CTRL) Software Reset */ -#define CCL_CTRL_SWRST (_U_(0x1) << CCL_CTRL_SWRST_Pos) -#define CCL_CTRL_ENABLE_Pos 1 /**< \brief (CCL_CTRL) Enable */ -#define CCL_CTRL_ENABLE (_U_(0x1) << CCL_CTRL_ENABLE_Pos) -#define CCL_CTRL_RUNSTDBY_Pos 6 /**< \brief (CCL_CTRL) Run in Standby */ -#define CCL_CTRL_RUNSTDBY (_U_(0x1) << CCL_CTRL_RUNSTDBY_Pos) -#define CCL_CTRL_MASK _U_(0x43) /**< \brief (CCL_CTRL) MASK Register */ - -/* -------- CCL_SEQCTRL : (CCL Offset: 0x4) (R/W 8) SEQ Control x -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SEQSEL:4; /*!< bit: 0.. 3 Sequential Selection */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} CCL_SEQCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CCL_SEQCTRL_OFFSET 0x4 /**< \brief (CCL_SEQCTRL offset) SEQ Control x */ -#define CCL_SEQCTRL_RESETVALUE _U_(0x00) /**< \brief (CCL_SEQCTRL reset_value) SEQ Control x */ - -#define CCL_SEQCTRL_SEQSEL_Pos 0 /**< \brief (CCL_SEQCTRL) Sequential Selection */ -#define CCL_SEQCTRL_SEQSEL_Msk (_U_(0xF) << CCL_SEQCTRL_SEQSEL_Pos) -#define CCL_SEQCTRL_SEQSEL(value) (CCL_SEQCTRL_SEQSEL_Msk & ((value) << CCL_SEQCTRL_SEQSEL_Pos)) -#define CCL_SEQCTRL_SEQSEL_DISABLE_Val _U_(0x0) /**< \brief (CCL_SEQCTRL) Sequential logic is disabled */ -#define CCL_SEQCTRL_SEQSEL_DFF_Val _U_(0x1) /**< \brief (CCL_SEQCTRL) D flip flop */ -#define CCL_SEQCTRL_SEQSEL_JK_Val _U_(0x2) /**< \brief (CCL_SEQCTRL) JK flip flop */ -#define CCL_SEQCTRL_SEQSEL_LATCH_Val _U_(0x3) /**< \brief (CCL_SEQCTRL) D latch */ -#define CCL_SEQCTRL_SEQSEL_RS_Val _U_(0x4) /**< \brief (CCL_SEQCTRL) RS latch */ -#define CCL_SEQCTRL_SEQSEL_DISABLE (CCL_SEQCTRL_SEQSEL_DISABLE_Val << CCL_SEQCTRL_SEQSEL_Pos) -#define CCL_SEQCTRL_SEQSEL_DFF (CCL_SEQCTRL_SEQSEL_DFF_Val << CCL_SEQCTRL_SEQSEL_Pos) -#define CCL_SEQCTRL_SEQSEL_JK (CCL_SEQCTRL_SEQSEL_JK_Val << CCL_SEQCTRL_SEQSEL_Pos) -#define CCL_SEQCTRL_SEQSEL_LATCH (CCL_SEQCTRL_SEQSEL_LATCH_Val << CCL_SEQCTRL_SEQSEL_Pos) -#define CCL_SEQCTRL_SEQSEL_RS (CCL_SEQCTRL_SEQSEL_RS_Val << CCL_SEQCTRL_SEQSEL_Pos) -#define CCL_SEQCTRL_MASK _U_(0x0F) /**< \brief (CCL_SEQCTRL) MASK Register */ - -/* -------- CCL_LUTCTRL : (CCL Offset: 0x8) (R/W 32) LUT Control x -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t :1; /*!< bit: 0 Reserved */ - uint32_t ENABLE:1; /*!< bit: 1 LUT Enable */ - uint32_t :2; /*!< bit: 2.. 3 Reserved */ - uint32_t FILTSEL:2; /*!< bit: 4.. 5 Filter Selection */ - uint32_t :1; /*!< bit: 6 Reserved */ - uint32_t EDGESEL:1; /*!< bit: 7 Edge Selection */ - uint32_t INSEL0:4; /*!< bit: 8..11 Input Selection 0 */ - uint32_t INSEL1:4; /*!< bit: 12..15 Input Selection 1 */ - uint32_t INSEL2:4; /*!< bit: 16..19 Input Selection 2 */ - uint32_t INVEI:1; /*!< bit: 20 Inverted Event Input Enable */ - uint32_t LUTEI:1; /*!< bit: 21 LUT Event Input Enable */ - uint32_t LUTEO:1; /*!< bit: 22 LUT Event Output Enable */ - uint32_t :1; /*!< bit: 23 Reserved */ - uint32_t TRUTH:8; /*!< bit: 24..31 Truth Value */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CCL_LUTCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CCL_LUTCTRL_OFFSET 0x8 /**< \brief (CCL_LUTCTRL offset) LUT Control x */ -#define CCL_LUTCTRL_RESETVALUE _U_(0x00000000) /**< \brief (CCL_LUTCTRL reset_value) LUT Control x */ - -#define CCL_LUTCTRL_ENABLE_Pos 1 /**< \brief (CCL_LUTCTRL) LUT Enable */ -#define CCL_LUTCTRL_ENABLE (_U_(0x1) << CCL_LUTCTRL_ENABLE_Pos) -#define CCL_LUTCTRL_FILTSEL_Pos 4 /**< \brief (CCL_LUTCTRL) Filter Selection */ -#define CCL_LUTCTRL_FILTSEL_Msk (_U_(0x3) << CCL_LUTCTRL_FILTSEL_Pos) -#define CCL_LUTCTRL_FILTSEL(value) (CCL_LUTCTRL_FILTSEL_Msk & ((value) << CCL_LUTCTRL_FILTSEL_Pos)) -#define CCL_LUTCTRL_FILTSEL_DISABLE_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Filter disabled */ -#define CCL_LUTCTRL_FILTSEL_SYNCH_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Synchronizer enabled */ -#define CCL_LUTCTRL_FILTSEL_FILTER_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Filter enabled */ -#define CCL_LUTCTRL_FILTSEL_DISABLE (CCL_LUTCTRL_FILTSEL_DISABLE_Val << CCL_LUTCTRL_FILTSEL_Pos) -#define CCL_LUTCTRL_FILTSEL_SYNCH (CCL_LUTCTRL_FILTSEL_SYNCH_Val << CCL_LUTCTRL_FILTSEL_Pos) -#define CCL_LUTCTRL_FILTSEL_FILTER (CCL_LUTCTRL_FILTSEL_FILTER_Val << CCL_LUTCTRL_FILTSEL_Pos) -#define CCL_LUTCTRL_EDGESEL_Pos 7 /**< \brief (CCL_LUTCTRL) Edge Selection */ -#define CCL_LUTCTRL_EDGESEL (_U_(0x1) << CCL_LUTCTRL_EDGESEL_Pos) -#define CCL_LUTCTRL_INSEL0_Pos 8 /**< \brief (CCL_LUTCTRL) Input Selection 0 */ -#define CCL_LUTCTRL_INSEL0_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0(value) (CCL_LUTCTRL_INSEL0_Msk & ((value) << CCL_LUTCTRL_INSEL0_Pos)) -#define CCL_LUTCTRL_INSEL0_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ -#define CCL_LUTCTRL_INSEL0_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ -#define CCL_LUTCTRL_INSEL0_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ -#define CCL_LUTCTRL_INSEL0_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ -#define CCL_LUTCTRL_INSEL0_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ -#define CCL_LUTCTRL_INSEL0_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ -#define CCL_LUTCTRL_INSEL0_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ -#define CCL_LUTCTRL_INSEL0_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ -#define CCL_LUTCTRL_INSEL0_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ -#define CCL_LUTCTRL_INSEL0_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ -#define CCL_LUTCTRL_INSEL0_MASK (CCL_LUTCTRL_INSEL0_MASK_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_FEEDBACK (CCL_LUTCTRL_INSEL0_FEEDBACK_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_LINK (CCL_LUTCTRL_INSEL0_LINK_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_EVENT (CCL_LUTCTRL_INSEL0_EVENT_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_IO (CCL_LUTCTRL_INSEL0_IO_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_AC (CCL_LUTCTRL_INSEL0_AC_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_TC (CCL_LUTCTRL_INSEL0_TC_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_ALTTC (CCL_LUTCTRL_INSEL0_ALTTC_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_TCC (CCL_LUTCTRL_INSEL0_TCC_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL0_SERCOM (CCL_LUTCTRL_INSEL0_SERCOM_Val << CCL_LUTCTRL_INSEL0_Pos) -#define CCL_LUTCTRL_INSEL1_Pos 12 /**< \brief (CCL_LUTCTRL) Input Selection 1 */ -#define CCL_LUTCTRL_INSEL1_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1(value) (CCL_LUTCTRL_INSEL1_Msk & ((value) << CCL_LUTCTRL_INSEL1_Pos)) -#define CCL_LUTCTRL_INSEL1_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ -#define CCL_LUTCTRL_INSEL1_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ -#define CCL_LUTCTRL_INSEL1_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ -#define CCL_LUTCTRL_INSEL1_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ -#define CCL_LUTCTRL_INSEL1_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ -#define CCL_LUTCTRL_INSEL1_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ -#define CCL_LUTCTRL_INSEL1_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ -#define CCL_LUTCTRL_INSEL1_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ -#define CCL_LUTCTRL_INSEL1_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ -#define CCL_LUTCTRL_INSEL1_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ -#define CCL_LUTCTRL_INSEL1_MASK (CCL_LUTCTRL_INSEL1_MASK_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_FEEDBACK (CCL_LUTCTRL_INSEL1_FEEDBACK_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_LINK (CCL_LUTCTRL_INSEL1_LINK_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_EVENT (CCL_LUTCTRL_INSEL1_EVENT_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_IO (CCL_LUTCTRL_INSEL1_IO_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_AC (CCL_LUTCTRL_INSEL1_AC_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_TC (CCL_LUTCTRL_INSEL1_TC_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_ALTTC (CCL_LUTCTRL_INSEL1_ALTTC_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_TCC (CCL_LUTCTRL_INSEL1_TCC_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL1_SERCOM (CCL_LUTCTRL_INSEL1_SERCOM_Val << CCL_LUTCTRL_INSEL1_Pos) -#define CCL_LUTCTRL_INSEL2_Pos 16 /**< \brief (CCL_LUTCTRL) Input Selection 2 */ -#define CCL_LUTCTRL_INSEL2_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2(value) (CCL_LUTCTRL_INSEL2_Msk & ((value) << CCL_LUTCTRL_INSEL2_Pos)) -#define CCL_LUTCTRL_INSEL2_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ -#define CCL_LUTCTRL_INSEL2_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ -#define CCL_LUTCTRL_INSEL2_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ -#define CCL_LUTCTRL_INSEL2_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ -#define CCL_LUTCTRL_INSEL2_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ -#define CCL_LUTCTRL_INSEL2_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ -#define CCL_LUTCTRL_INSEL2_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ -#define CCL_LUTCTRL_INSEL2_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ -#define CCL_LUTCTRL_INSEL2_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ -#define CCL_LUTCTRL_INSEL2_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ -#define CCL_LUTCTRL_INSEL2_MASK (CCL_LUTCTRL_INSEL2_MASK_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_FEEDBACK (CCL_LUTCTRL_INSEL2_FEEDBACK_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_LINK (CCL_LUTCTRL_INSEL2_LINK_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_EVENT (CCL_LUTCTRL_INSEL2_EVENT_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_IO (CCL_LUTCTRL_INSEL2_IO_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_AC (CCL_LUTCTRL_INSEL2_AC_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_TC (CCL_LUTCTRL_INSEL2_TC_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_ALTTC (CCL_LUTCTRL_INSEL2_ALTTC_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_TCC (CCL_LUTCTRL_INSEL2_TCC_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INSEL2_SERCOM (CCL_LUTCTRL_INSEL2_SERCOM_Val << CCL_LUTCTRL_INSEL2_Pos) -#define CCL_LUTCTRL_INVEI_Pos 20 /**< \brief (CCL_LUTCTRL) Inverted Event Input Enable */ -#define CCL_LUTCTRL_INVEI (_U_(0x1) << CCL_LUTCTRL_INVEI_Pos) -#define CCL_LUTCTRL_LUTEI_Pos 21 /**< \brief (CCL_LUTCTRL) LUT Event Input Enable */ -#define CCL_LUTCTRL_LUTEI (_U_(0x1) << CCL_LUTCTRL_LUTEI_Pos) -#define CCL_LUTCTRL_LUTEO_Pos 22 /**< \brief (CCL_LUTCTRL) LUT Event Output Enable */ -#define CCL_LUTCTRL_LUTEO (_U_(0x1) << CCL_LUTCTRL_LUTEO_Pos) -#define CCL_LUTCTRL_TRUTH_Pos 24 /**< \brief (CCL_LUTCTRL) Truth Value */ -#define CCL_LUTCTRL_TRUTH_Msk (_U_(0xFF) << CCL_LUTCTRL_TRUTH_Pos) -#define CCL_LUTCTRL_TRUTH(value) (CCL_LUTCTRL_TRUTH_Msk & ((value) << CCL_LUTCTRL_TRUTH_Pos)) -#define CCL_LUTCTRL_MASK _U_(0xFF7FFFB2) /**< \brief (CCL_LUTCTRL) MASK Register */ - -/** \brief CCL hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO CCL_CTRL_Type CTRL; /**< \brief Offset: 0x0 (R/W 8) Control */ - RoReg8 Reserved1[0x3]; - __IO CCL_SEQCTRL_Type SEQCTRL[2]; /**< \brief Offset: 0x4 (R/W 8) SEQ Control x */ - RoReg8 Reserved2[0x2]; - __IO CCL_LUTCTRL_Type LUTCTRL[4]; /**< \brief Offset: 0x8 (R/W 32) LUT Control x */ -} Ccl; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD51_CCL_COMPONENT_ */ +/** + * \file + * + * \brief Component description for CCL + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_CCL_COMPONENT_ +#define _SAMD51_CCL_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR CCL */ +/* ========================================================================== */ +/** \addtogroup SAMD51_CCL Configurable Custom Logic */ +/*@{*/ + +#define CCL_U2225 +#define REV_CCL 0x110 + +/* -------- CCL_CTRL : (CCL Offset: 0x0) (R/W 8) Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable */ + uint8_t :4; /*!< bit: 2.. 5 Reserved */ + uint8_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint8_t :1; /*!< bit: 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} CCL_CTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CCL_CTRL_OFFSET 0x0 /**< \brief (CCL_CTRL offset) Control */ +#define CCL_CTRL_RESETVALUE _U_(0x00) /**< \brief (CCL_CTRL reset_value) Control */ + +#define CCL_CTRL_SWRST_Pos 0 /**< \brief (CCL_CTRL) Software Reset */ +#define CCL_CTRL_SWRST (_U_(0x1) << CCL_CTRL_SWRST_Pos) +#define CCL_CTRL_ENABLE_Pos 1 /**< \brief (CCL_CTRL) Enable */ +#define CCL_CTRL_ENABLE (_U_(0x1) << CCL_CTRL_ENABLE_Pos) +#define CCL_CTRL_RUNSTDBY_Pos 6 /**< \brief (CCL_CTRL) Run in Standby */ +#define CCL_CTRL_RUNSTDBY (_U_(0x1) << CCL_CTRL_RUNSTDBY_Pos) +#define CCL_CTRL_MASK _U_(0x43) /**< \brief (CCL_CTRL) MASK Register */ + +/* -------- CCL_SEQCTRL : (CCL Offset: 0x4) (R/W 8) SEQ Control x -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SEQSEL:4; /*!< bit: 0.. 3 Sequential Selection */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} CCL_SEQCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CCL_SEQCTRL_OFFSET 0x4 /**< \brief (CCL_SEQCTRL offset) SEQ Control x */ +#define CCL_SEQCTRL_RESETVALUE _U_(0x00) /**< \brief (CCL_SEQCTRL reset_value) SEQ Control x */ + +#define CCL_SEQCTRL_SEQSEL_Pos 0 /**< \brief (CCL_SEQCTRL) Sequential Selection */ +#define CCL_SEQCTRL_SEQSEL_Msk (_U_(0xF) << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL(value) (CCL_SEQCTRL_SEQSEL_Msk & ((value) << CCL_SEQCTRL_SEQSEL_Pos)) +#define CCL_SEQCTRL_SEQSEL_DISABLE_Val _U_(0x0) /**< \brief (CCL_SEQCTRL) Sequential logic is disabled */ +#define CCL_SEQCTRL_SEQSEL_DFF_Val _U_(0x1) /**< \brief (CCL_SEQCTRL) D flip flop */ +#define CCL_SEQCTRL_SEQSEL_JK_Val _U_(0x2) /**< \brief (CCL_SEQCTRL) JK flip flop */ +#define CCL_SEQCTRL_SEQSEL_LATCH_Val _U_(0x3) /**< \brief (CCL_SEQCTRL) D latch */ +#define CCL_SEQCTRL_SEQSEL_RS_Val _U_(0x4) /**< \brief (CCL_SEQCTRL) RS latch */ +#define CCL_SEQCTRL_SEQSEL_DISABLE (CCL_SEQCTRL_SEQSEL_DISABLE_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_DFF (CCL_SEQCTRL_SEQSEL_DFF_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_JK (CCL_SEQCTRL_SEQSEL_JK_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_LATCH (CCL_SEQCTRL_SEQSEL_LATCH_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_SEQSEL_RS (CCL_SEQCTRL_SEQSEL_RS_Val << CCL_SEQCTRL_SEQSEL_Pos) +#define CCL_SEQCTRL_MASK _U_(0x0F) /**< \brief (CCL_SEQCTRL) MASK Register */ + +/* -------- CCL_LUTCTRL : (CCL Offset: 0x8) (R/W 32) LUT Control x -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t ENABLE:1; /*!< bit: 1 LUT Enable */ + uint32_t :2; /*!< bit: 2.. 3 Reserved */ + uint32_t FILTSEL:2; /*!< bit: 4.. 5 Filter Selection */ + uint32_t :1; /*!< bit: 6 Reserved */ + uint32_t EDGESEL:1; /*!< bit: 7 Edge Selection */ + uint32_t INSEL0:4; /*!< bit: 8..11 Input Selection 0 */ + uint32_t INSEL1:4; /*!< bit: 12..15 Input Selection 1 */ + uint32_t INSEL2:4; /*!< bit: 16..19 Input Selection 2 */ + uint32_t INVEI:1; /*!< bit: 20 Inverted Event Input Enable */ + uint32_t LUTEI:1; /*!< bit: 21 LUT Event Input Enable */ + uint32_t LUTEO:1; /*!< bit: 22 LUT Event Output Enable */ + uint32_t :1; /*!< bit: 23 Reserved */ + uint32_t TRUTH:8; /*!< bit: 24..31 Truth Value */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CCL_LUTCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CCL_LUTCTRL_OFFSET 0x8 /**< \brief (CCL_LUTCTRL offset) LUT Control x */ +#define CCL_LUTCTRL_RESETVALUE _U_(0x00000000) /**< \brief (CCL_LUTCTRL reset_value) LUT Control x */ + +#define CCL_LUTCTRL_ENABLE_Pos 1 /**< \brief (CCL_LUTCTRL) LUT Enable */ +#define CCL_LUTCTRL_ENABLE (_U_(0x1) << CCL_LUTCTRL_ENABLE_Pos) +#define CCL_LUTCTRL_FILTSEL_Pos 4 /**< \brief (CCL_LUTCTRL) Filter Selection */ +#define CCL_LUTCTRL_FILTSEL_Msk (_U_(0x3) << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_FILTSEL(value) (CCL_LUTCTRL_FILTSEL_Msk & ((value) << CCL_LUTCTRL_FILTSEL_Pos)) +#define CCL_LUTCTRL_FILTSEL_DISABLE_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Filter disabled */ +#define CCL_LUTCTRL_FILTSEL_SYNCH_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Synchronizer enabled */ +#define CCL_LUTCTRL_FILTSEL_FILTER_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Filter enabled */ +#define CCL_LUTCTRL_FILTSEL_DISABLE (CCL_LUTCTRL_FILTSEL_DISABLE_Val << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_FILTSEL_SYNCH (CCL_LUTCTRL_FILTSEL_SYNCH_Val << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_FILTSEL_FILTER (CCL_LUTCTRL_FILTSEL_FILTER_Val << CCL_LUTCTRL_FILTSEL_Pos) +#define CCL_LUTCTRL_EDGESEL_Pos 7 /**< \brief (CCL_LUTCTRL) Edge Selection */ +#define CCL_LUTCTRL_EDGESEL (_U_(0x1) << CCL_LUTCTRL_EDGESEL_Pos) +#define CCL_LUTCTRL_INSEL0_Pos 8 /**< \brief (CCL_LUTCTRL) Input Selection 0 */ +#define CCL_LUTCTRL_INSEL0_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0(value) (CCL_LUTCTRL_INSEL0_Msk & ((value) << CCL_LUTCTRL_INSEL0_Pos)) +#define CCL_LUTCTRL_INSEL0_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ +#define CCL_LUTCTRL_INSEL0_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ +#define CCL_LUTCTRL_INSEL0_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ +#define CCL_LUTCTRL_INSEL0_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ +#define CCL_LUTCTRL_INSEL0_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ +#define CCL_LUTCTRL_INSEL0_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ +#define CCL_LUTCTRL_INSEL0_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ +#define CCL_LUTCTRL_INSEL0_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ +#define CCL_LUTCTRL_INSEL0_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ +#define CCL_LUTCTRL_INSEL0_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ +#define CCL_LUTCTRL_INSEL0_MASK (CCL_LUTCTRL_INSEL0_MASK_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_FEEDBACK (CCL_LUTCTRL_INSEL0_FEEDBACK_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_LINK (CCL_LUTCTRL_INSEL0_LINK_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_EVENT (CCL_LUTCTRL_INSEL0_EVENT_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_IO (CCL_LUTCTRL_INSEL0_IO_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_AC (CCL_LUTCTRL_INSEL0_AC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_TC (CCL_LUTCTRL_INSEL0_TC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_ALTTC (CCL_LUTCTRL_INSEL0_ALTTC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_TCC (CCL_LUTCTRL_INSEL0_TCC_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL0_SERCOM (CCL_LUTCTRL_INSEL0_SERCOM_Val << CCL_LUTCTRL_INSEL0_Pos) +#define CCL_LUTCTRL_INSEL1_Pos 12 /**< \brief (CCL_LUTCTRL) Input Selection 1 */ +#define CCL_LUTCTRL_INSEL1_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1(value) (CCL_LUTCTRL_INSEL1_Msk & ((value) << CCL_LUTCTRL_INSEL1_Pos)) +#define CCL_LUTCTRL_INSEL1_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ +#define CCL_LUTCTRL_INSEL1_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ +#define CCL_LUTCTRL_INSEL1_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ +#define CCL_LUTCTRL_INSEL1_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ +#define CCL_LUTCTRL_INSEL1_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ +#define CCL_LUTCTRL_INSEL1_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ +#define CCL_LUTCTRL_INSEL1_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ +#define CCL_LUTCTRL_INSEL1_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ +#define CCL_LUTCTRL_INSEL1_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ +#define CCL_LUTCTRL_INSEL1_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ +#define CCL_LUTCTRL_INSEL1_MASK (CCL_LUTCTRL_INSEL1_MASK_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_FEEDBACK (CCL_LUTCTRL_INSEL1_FEEDBACK_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_LINK (CCL_LUTCTRL_INSEL1_LINK_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_EVENT (CCL_LUTCTRL_INSEL1_EVENT_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_IO (CCL_LUTCTRL_INSEL1_IO_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_AC (CCL_LUTCTRL_INSEL1_AC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_TC (CCL_LUTCTRL_INSEL1_TC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_ALTTC (CCL_LUTCTRL_INSEL1_ALTTC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_TCC (CCL_LUTCTRL_INSEL1_TCC_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL1_SERCOM (CCL_LUTCTRL_INSEL1_SERCOM_Val << CCL_LUTCTRL_INSEL1_Pos) +#define CCL_LUTCTRL_INSEL2_Pos 16 /**< \brief (CCL_LUTCTRL) Input Selection 2 */ +#define CCL_LUTCTRL_INSEL2_Msk (_U_(0xF) << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2(value) (CCL_LUTCTRL_INSEL2_Msk & ((value) << CCL_LUTCTRL_INSEL2_Pos)) +#define CCL_LUTCTRL_INSEL2_MASK_Val _U_(0x0) /**< \brief (CCL_LUTCTRL) Masked input */ +#define CCL_LUTCTRL_INSEL2_FEEDBACK_Val _U_(0x1) /**< \brief (CCL_LUTCTRL) Feedback input source */ +#define CCL_LUTCTRL_INSEL2_LINK_Val _U_(0x2) /**< \brief (CCL_LUTCTRL) Linked LUT input source */ +#define CCL_LUTCTRL_INSEL2_EVENT_Val _U_(0x3) /**< \brief (CCL_LUTCTRL) Event input source */ +#define CCL_LUTCTRL_INSEL2_IO_Val _U_(0x4) /**< \brief (CCL_LUTCTRL) I/O pin input source */ +#define CCL_LUTCTRL_INSEL2_AC_Val _U_(0x5) /**< \brief (CCL_LUTCTRL) AC input source */ +#define CCL_LUTCTRL_INSEL2_TC_Val _U_(0x6) /**< \brief (CCL_LUTCTRL) TC input source */ +#define CCL_LUTCTRL_INSEL2_ALTTC_Val _U_(0x7) /**< \brief (CCL_LUTCTRL) Alternate TC input source */ +#define CCL_LUTCTRL_INSEL2_TCC_Val _U_(0x8) /**< \brief (CCL_LUTCTRL) TCC input source */ +#define CCL_LUTCTRL_INSEL2_SERCOM_Val _U_(0x9) /**< \brief (CCL_LUTCTRL) SERCOM input source */ +#define CCL_LUTCTRL_INSEL2_MASK (CCL_LUTCTRL_INSEL2_MASK_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_FEEDBACK (CCL_LUTCTRL_INSEL2_FEEDBACK_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_LINK (CCL_LUTCTRL_INSEL2_LINK_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_EVENT (CCL_LUTCTRL_INSEL2_EVENT_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_IO (CCL_LUTCTRL_INSEL2_IO_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_AC (CCL_LUTCTRL_INSEL2_AC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_TC (CCL_LUTCTRL_INSEL2_TC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_ALTTC (CCL_LUTCTRL_INSEL2_ALTTC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_TCC (CCL_LUTCTRL_INSEL2_TCC_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INSEL2_SERCOM (CCL_LUTCTRL_INSEL2_SERCOM_Val << CCL_LUTCTRL_INSEL2_Pos) +#define CCL_LUTCTRL_INVEI_Pos 20 /**< \brief (CCL_LUTCTRL) Inverted Event Input Enable */ +#define CCL_LUTCTRL_INVEI (_U_(0x1) << CCL_LUTCTRL_INVEI_Pos) +#define CCL_LUTCTRL_LUTEI_Pos 21 /**< \brief (CCL_LUTCTRL) LUT Event Input Enable */ +#define CCL_LUTCTRL_LUTEI (_U_(0x1) << CCL_LUTCTRL_LUTEI_Pos) +#define CCL_LUTCTRL_LUTEO_Pos 22 /**< \brief (CCL_LUTCTRL) LUT Event Output Enable */ +#define CCL_LUTCTRL_LUTEO (_U_(0x1) << CCL_LUTCTRL_LUTEO_Pos) +#define CCL_LUTCTRL_TRUTH_Pos 24 /**< \brief (CCL_LUTCTRL) Truth Value */ +#define CCL_LUTCTRL_TRUTH_Msk (_U_(0xFF) << CCL_LUTCTRL_TRUTH_Pos) +#define CCL_LUTCTRL_TRUTH(value) (CCL_LUTCTRL_TRUTH_Msk & ((value) << CCL_LUTCTRL_TRUTH_Pos)) +#define CCL_LUTCTRL_MASK _U_(0xFF7FFFB2) /**< \brief (CCL_LUTCTRL) MASK Register */ + +/** \brief CCL hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO CCL_CTRL_Type CTRL; /**< \brief Offset: 0x0 (R/W 8) Control */ + RoReg8 Reserved1[0x3]; + __IO CCL_SEQCTRL_Type SEQCTRL[2]; /**< \brief Offset: 0x4 (R/W 8) SEQ Control x */ + RoReg8 Reserved2[0x2]; + __IO CCL_LUTCTRL_Type LUTCTRL[4]; /**< \brief Offset: 0x8 (R/W 32) LUT Control x */ +} Ccl; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_CCL_COMPONENT_ */ diff --git a/lib/samd51/samd51a/include/component/cmcc.h b/lib/samd51/samd51a/include/component/cmcc.h index 1b17736..060dba7 100644 --- a/lib/samd51/samd51a/include/component/cmcc.h +++ b/lib/samd51/samd51a/include/component/cmcc.h @@ -1,357 +1,357 @@ -/** - * \file - * - * \brief Component description for CMCC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_CMCC_COMPONENT_ -#define _SAMD51_CMCC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR CMCC */ -/* ========================================================================== */ -/** \addtogroup SAMD51_CMCC Cortex M Cache Controller */ -/*@{*/ - -#define CMCC_U2015 -#define REV_CMCC 0x600 - -/* -------- CMCC_TYPE : (CMCC Offset: 0x00) (R/ 32) Cache Type Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t :1; /*!< bit: 0 Reserved */ - uint32_t GCLK:1; /*!< bit: 1 dynamic Clock Gating supported */ - uint32_t :2; /*!< bit: 2.. 3 Reserved */ - uint32_t RRP:1; /*!< bit: 4 Round Robin Policy supported */ - uint32_t WAYNUM:2; /*!< bit: 5.. 6 Number of Way */ - uint32_t LCKDOWN:1; /*!< bit: 7 Lock Down supported */ - uint32_t CSIZE:3; /*!< bit: 8..10 Cache Size */ - uint32_t CLSIZE:3; /*!< bit: 11..13 Cache Line Size */ - uint32_t :18; /*!< bit: 14..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_TYPE_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_TYPE_OFFSET 0x00 /**< \brief (CMCC_TYPE offset) Cache Type Register */ -#define CMCC_TYPE_RESETVALUE _U_(0x000012D2) /**< \brief (CMCC_TYPE reset_value) Cache Type Register */ - -#define CMCC_TYPE_GCLK_Pos 1 /**< \brief (CMCC_TYPE) dynamic Clock Gating supported */ -#define CMCC_TYPE_GCLK (_U_(0x1) << CMCC_TYPE_GCLK_Pos) -#define CMCC_TYPE_RRP_Pos 4 /**< \brief (CMCC_TYPE) Round Robin Policy supported */ -#define CMCC_TYPE_RRP (_U_(0x1) << CMCC_TYPE_RRP_Pos) -#define CMCC_TYPE_WAYNUM_Pos 5 /**< \brief (CMCC_TYPE) Number of Way */ -#define CMCC_TYPE_WAYNUM_Msk (_U_(0x3) << CMCC_TYPE_WAYNUM_Pos) -#define CMCC_TYPE_WAYNUM(value) (CMCC_TYPE_WAYNUM_Msk & ((value) << CMCC_TYPE_WAYNUM_Pos)) -#define CMCC_TYPE_WAYNUM_DMAPPED_Val _U_(0x0) /**< \brief (CMCC_TYPE) Direct Mapped Cache */ -#define CMCC_TYPE_WAYNUM_ARCH2WAY_Val _U_(0x1) /**< \brief (CMCC_TYPE) 2-WAY set associative */ -#define CMCC_TYPE_WAYNUM_ARCH4WAY_Val _U_(0x2) /**< \brief (CMCC_TYPE) 4-WAY set associative */ -#define CMCC_TYPE_WAYNUM_DMAPPED (CMCC_TYPE_WAYNUM_DMAPPED_Val << CMCC_TYPE_WAYNUM_Pos) -#define CMCC_TYPE_WAYNUM_ARCH2WAY (CMCC_TYPE_WAYNUM_ARCH2WAY_Val << CMCC_TYPE_WAYNUM_Pos) -#define CMCC_TYPE_WAYNUM_ARCH4WAY (CMCC_TYPE_WAYNUM_ARCH4WAY_Val << CMCC_TYPE_WAYNUM_Pos) -#define CMCC_TYPE_LCKDOWN_Pos 7 /**< \brief (CMCC_TYPE) Lock Down supported */ -#define CMCC_TYPE_LCKDOWN (_U_(0x1) << CMCC_TYPE_LCKDOWN_Pos) -#define CMCC_TYPE_CSIZE_Pos 8 /**< \brief (CMCC_TYPE) Cache Size */ -#define CMCC_TYPE_CSIZE_Msk (_U_(0x7) << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE(value) (CMCC_TYPE_CSIZE_Msk & ((value) << CMCC_TYPE_CSIZE_Pos)) -#define CMCC_TYPE_CSIZE_CSIZE_1KB_Val _U_(0x0) /**< \brief (CMCC_TYPE) Cache Size is 1 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_2KB_Val _U_(0x1) /**< \brief (CMCC_TYPE) Cache Size is 2 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_4KB_Val _U_(0x2) /**< \brief (CMCC_TYPE) Cache Size is 4 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_8KB_Val _U_(0x3) /**< \brief (CMCC_TYPE) Cache Size is 8 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_16KB_Val _U_(0x4) /**< \brief (CMCC_TYPE) Cache Size is 16 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_32KB_Val _U_(0x5) /**< \brief (CMCC_TYPE) Cache Size is 32 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_64KB_Val _U_(0x6) /**< \brief (CMCC_TYPE) Cache Size is 64 KB */ -#define CMCC_TYPE_CSIZE_CSIZE_1KB (CMCC_TYPE_CSIZE_CSIZE_1KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE_CSIZE_2KB (CMCC_TYPE_CSIZE_CSIZE_2KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE_CSIZE_4KB (CMCC_TYPE_CSIZE_CSIZE_4KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE_CSIZE_8KB (CMCC_TYPE_CSIZE_CSIZE_8KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE_CSIZE_16KB (CMCC_TYPE_CSIZE_CSIZE_16KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE_CSIZE_32KB (CMCC_TYPE_CSIZE_CSIZE_32KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CSIZE_CSIZE_64KB (CMCC_TYPE_CSIZE_CSIZE_64KB_Val << CMCC_TYPE_CSIZE_Pos) -#define CMCC_TYPE_CLSIZE_Pos 11 /**< \brief (CMCC_TYPE) Cache Line Size */ -#define CMCC_TYPE_CLSIZE_Msk (_U_(0x7) << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_CLSIZE(value) (CMCC_TYPE_CLSIZE_Msk & ((value) << CMCC_TYPE_CLSIZE_Pos)) -#define CMCC_TYPE_CLSIZE_CLSIZE_4B_Val _U_(0x0) /**< \brief (CMCC_TYPE) Cache Line Size is 4 bytes */ -#define CMCC_TYPE_CLSIZE_CLSIZE_8B_Val _U_(0x1) /**< \brief (CMCC_TYPE) Cache Line Size is 8 bytes */ -#define CMCC_TYPE_CLSIZE_CLSIZE_16B_Val _U_(0x2) /**< \brief (CMCC_TYPE) Cache Line Size is 16 bytes */ -#define CMCC_TYPE_CLSIZE_CLSIZE_32B_Val _U_(0x3) /**< \brief (CMCC_TYPE) Cache Line Size is 32 bytes */ -#define CMCC_TYPE_CLSIZE_CLSIZE_64B_Val _U_(0x4) /**< \brief (CMCC_TYPE) Cache Line Size is 64 bytes */ -#define CMCC_TYPE_CLSIZE_CLSIZE_128B_Val _U_(0x5) /**< \brief (CMCC_TYPE) Cache Line Size is 128 bytes */ -#define CMCC_TYPE_CLSIZE_CLSIZE_4B (CMCC_TYPE_CLSIZE_CLSIZE_4B_Val << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_CLSIZE_CLSIZE_8B (CMCC_TYPE_CLSIZE_CLSIZE_8B_Val << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_CLSIZE_CLSIZE_16B (CMCC_TYPE_CLSIZE_CLSIZE_16B_Val << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_CLSIZE_CLSIZE_32B (CMCC_TYPE_CLSIZE_CLSIZE_32B_Val << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_CLSIZE_CLSIZE_64B (CMCC_TYPE_CLSIZE_CLSIZE_64B_Val << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_CLSIZE_CLSIZE_128B (CMCC_TYPE_CLSIZE_CLSIZE_128B_Val << CMCC_TYPE_CLSIZE_Pos) -#define CMCC_TYPE_MASK _U_(0x00003FF2) /**< \brief (CMCC_TYPE) MASK Register */ - -/* -------- CMCC_CFG : (CMCC Offset: 0x04) (R/W 32) Cache Configuration Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t :1; /*!< bit: 0 Reserved */ - uint32_t ICDIS:1; /*!< bit: 1 Instruction Cache Disable */ - uint32_t DCDIS:1; /*!< bit: 2 Data Cache Disable */ - uint32_t :1; /*!< bit: 3 Reserved */ - uint32_t CSIZESW:3; /*!< bit: 4.. 6 Cache size configured by software */ - uint32_t :25; /*!< bit: 7..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_CFG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_CFG_OFFSET 0x04 /**< \brief (CMCC_CFG offset) Cache Configuration Register */ -#define CMCC_CFG_RESETVALUE _U_(0x00000020) /**< \brief (CMCC_CFG reset_value) Cache Configuration Register */ - -#define CMCC_CFG_ICDIS_Pos 1 /**< \brief (CMCC_CFG) Instruction Cache Disable */ -#define CMCC_CFG_ICDIS (_U_(0x1) << CMCC_CFG_ICDIS_Pos) -#define CMCC_CFG_DCDIS_Pos 2 /**< \brief (CMCC_CFG) Data Cache Disable */ -#define CMCC_CFG_DCDIS (_U_(0x1) << CMCC_CFG_DCDIS_Pos) -#define CMCC_CFG_CSIZESW_Pos 4 /**< \brief (CMCC_CFG) Cache size configured by software */ -#define CMCC_CFG_CSIZESW_Msk (_U_(0x7) << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW(value) (CMCC_CFG_CSIZESW_Msk & ((value) << CMCC_CFG_CSIZESW_Pos)) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_1KB_Val _U_(0x0) /**< \brief (CMCC_CFG) the Cache Size is configured to 1KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_2KB_Val _U_(0x1) /**< \brief (CMCC_CFG) the Cache Size is configured to 2KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_4KB_Val _U_(0x2) /**< \brief (CMCC_CFG) the Cache Size is configured to 4KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_8KB_Val _U_(0x3) /**< \brief (CMCC_CFG) the Cache Size is configured to 8KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_16KB_Val _U_(0x4) /**< \brief (CMCC_CFG) the Cache Size is configured to 16KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_32KB_Val _U_(0x5) /**< \brief (CMCC_CFG) the Cache Size is configured to 32KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_64KB_Val _U_(0x6) /**< \brief (CMCC_CFG) the Cache Size is configured to 64KB */ -#define CMCC_CFG_CSIZESW_CONF_CSIZE_1KB (CMCC_CFG_CSIZESW_CONF_CSIZE_1KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_2KB (CMCC_CFG_CSIZESW_CONF_CSIZE_2KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_4KB (CMCC_CFG_CSIZESW_CONF_CSIZE_4KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_8KB (CMCC_CFG_CSIZESW_CONF_CSIZE_8KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_16KB (CMCC_CFG_CSIZESW_CONF_CSIZE_16KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_32KB (CMCC_CFG_CSIZESW_CONF_CSIZE_32KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_CSIZESW_CONF_CSIZE_64KB (CMCC_CFG_CSIZESW_CONF_CSIZE_64KB_Val << CMCC_CFG_CSIZESW_Pos) -#define CMCC_CFG_MASK _U_(0x00000076) /**< \brief (CMCC_CFG) MASK Register */ - -/* -------- CMCC_CTRL : (CMCC Offset: 0x08) ( /W 32) Cache Control Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CEN:1; /*!< bit: 0 Cache Controller Enable */ - uint32_t :31; /*!< bit: 1..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_CTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_CTRL_OFFSET 0x08 /**< \brief (CMCC_CTRL offset) Cache Control Register */ -#define CMCC_CTRL_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_CTRL reset_value) Cache Control Register */ - -#define CMCC_CTRL_CEN_Pos 0 /**< \brief (CMCC_CTRL) Cache Controller Enable */ -#define CMCC_CTRL_CEN (_U_(0x1) << CMCC_CTRL_CEN_Pos) -#define CMCC_CTRL_MASK _U_(0x00000001) /**< \brief (CMCC_CTRL) MASK Register */ - -/* -------- CMCC_SR : (CMCC Offset: 0x0C) (R/ 32) Cache Status Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CSTS:1; /*!< bit: 0 Cache Controller Status */ - uint32_t :31; /*!< bit: 1..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_SR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_SR_OFFSET 0x0C /**< \brief (CMCC_SR offset) Cache Status Register */ -#define CMCC_SR_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_SR reset_value) Cache Status Register */ - -#define CMCC_SR_CSTS_Pos 0 /**< \brief (CMCC_SR) Cache Controller Status */ -#define CMCC_SR_CSTS (_U_(0x1) << CMCC_SR_CSTS_Pos) -#define CMCC_SR_MASK _U_(0x00000001) /**< \brief (CMCC_SR) MASK Register */ - -/* -------- CMCC_LCKWAY : (CMCC Offset: 0x10) (R/W 32) Cache Lock per Way Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t LCKWAY:4; /*!< bit: 0.. 3 Lockdown way Register */ - uint32_t :28; /*!< bit: 4..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_LCKWAY_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_LCKWAY_OFFSET 0x10 /**< \brief (CMCC_LCKWAY offset) Cache Lock per Way Register */ -#define CMCC_LCKWAY_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_LCKWAY reset_value) Cache Lock per Way Register */ - -#define CMCC_LCKWAY_LCKWAY_Pos 0 /**< \brief (CMCC_LCKWAY) Lockdown way Register */ -#define CMCC_LCKWAY_LCKWAY_Msk (_U_(0xF) << CMCC_LCKWAY_LCKWAY_Pos) -#define CMCC_LCKWAY_LCKWAY(value) (CMCC_LCKWAY_LCKWAY_Msk & ((value) << CMCC_LCKWAY_LCKWAY_Pos)) -#define CMCC_LCKWAY_MASK _U_(0x0000000F) /**< \brief (CMCC_LCKWAY) MASK Register */ - -/* -------- CMCC_MAINT0 : (CMCC Offset: 0x20) ( /W 32) Cache Maintenance Register 0 -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t INVALL:1; /*!< bit: 0 Cache Controller invalidate All */ - uint32_t :31; /*!< bit: 1..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_MAINT0_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_MAINT0_OFFSET 0x20 /**< \brief (CMCC_MAINT0 offset) Cache Maintenance Register 0 */ -#define CMCC_MAINT0_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MAINT0 reset_value) Cache Maintenance Register 0 */ - -#define CMCC_MAINT0_INVALL_Pos 0 /**< \brief (CMCC_MAINT0) Cache Controller invalidate All */ -#define CMCC_MAINT0_INVALL (_U_(0x1) << CMCC_MAINT0_INVALL_Pos) -#define CMCC_MAINT0_MASK _U_(0x00000001) /**< \brief (CMCC_MAINT0) MASK Register */ - -/* -------- CMCC_MAINT1 : (CMCC Offset: 0x24) ( /W 32) Cache Maintenance Register 1 -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t :4; /*!< bit: 0.. 3 Reserved */ - uint32_t INDEX:8; /*!< bit: 4..11 Invalidate Index */ - uint32_t :16; /*!< bit: 12..27 Reserved */ - uint32_t WAY:4; /*!< bit: 28..31 Invalidate Way */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_MAINT1_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_MAINT1_OFFSET 0x24 /**< \brief (CMCC_MAINT1 offset) Cache Maintenance Register 1 */ -#define CMCC_MAINT1_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MAINT1 reset_value) Cache Maintenance Register 1 */ - -#define CMCC_MAINT1_INDEX_Pos 4 /**< \brief (CMCC_MAINT1) Invalidate Index */ -#define CMCC_MAINT1_INDEX_Msk (_U_(0xFF) << CMCC_MAINT1_INDEX_Pos) -#define CMCC_MAINT1_INDEX(value) (CMCC_MAINT1_INDEX_Msk & ((value) << CMCC_MAINT1_INDEX_Pos)) -#define CMCC_MAINT1_WAY_Pos 28 /**< \brief (CMCC_MAINT1) Invalidate Way */ -#define CMCC_MAINT1_WAY_Msk (_U_(0xF) << CMCC_MAINT1_WAY_Pos) -#define CMCC_MAINT1_WAY(value) (CMCC_MAINT1_WAY_Msk & ((value) << CMCC_MAINT1_WAY_Pos)) -#define CMCC_MAINT1_WAY_WAY0_Val _U_(0x0) /**< \brief (CMCC_MAINT1) Way 0 is selection for index invalidation */ -#define CMCC_MAINT1_WAY_WAY1_Val _U_(0x1) /**< \brief (CMCC_MAINT1) Way 1 is selection for index invalidation */ -#define CMCC_MAINT1_WAY_WAY2_Val _U_(0x2) /**< \brief (CMCC_MAINT1) Way 2 is selection for index invalidation */ -#define CMCC_MAINT1_WAY_WAY3_Val _U_(0x3) /**< \brief (CMCC_MAINT1) Way 3 is selection for index invalidation */ -#define CMCC_MAINT1_WAY_WAY0 (CMCC_MAINT1_WAY_WAY0_Val << CMCC_MAINT1_WAY_Pos) -#define CMCC_MAINT1_WAY_WAY1 (CMCC_MAINT1_WAY_WAY1_Val << CMCC_MAINT1_WAY_Pos) -#define CMCC_MAINT1_WAY_WAY2 (CMCC_MAINT1_WAY_WAY2_Val << CMCC_MAINT1_WAY_Pos) -#define CMCC_MAINT1_WAY_WAY3 (CMCC_MAINT1_WAY_WAY3_Val << CMCC_MAINT1_WAY_Pos) -#define CMCC_MAINT1_MASK _U_(0xF0000FF0) /**< \brief (CMCC_MAINT1) MASK Register */ - -/* -------- CMCC_MCFG : (CMCC Offset: 0x28) (R/W 32) Cache Monitor Configuration Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t MODE:2; /*!< bit: 0.. 1 Cache Controller Monitor Counter Mode */ - uint32_t :30; /*!< bit: 2..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_MCFG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_MCFG_OFFSET 0x28 /**< \brief (CMCC_MCFG offset) Cache Monitor Configuration Register */ -#define CMCC_MCFG_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MCFG reset_value) Cache Monitor Configuration Register */ - -#define CMCC_MCFG_MODE_Pos 0 /**< \brief (CMCC_MCFG) Cache Controller Monitor Counter Mode */ -#define CMCC_MCFG_MODE_Msk (_U_(0x3) << CMCC_MCFG_MODE_Pos) -#define CMCC_MCFG_MODE(value) (CMCC_MCFG_MODE_Msk & ((value) << CMCC_MCFG_MODE_Pos)) -#define CMCC_MCFG_MODE_CYCLE_COUNT_Val _U_(0x0) /**< \brief (CMCC_MCFG) cycle counter */ -#define CMCC_MCFG_MODE_IHIT_COUNT_Val _U_(0x1) /**< \brief (CMCC_MCFG) instruction hit counter */ -#define CMCC_MCFG_MODE_DHIT_COUNT_Val _U_(0x2) /**< \brief (CMCC_MCFG) data hit counter */ -#define CMCC_MCFG_MODE_CYCLE_COUNT (CMCC_MCFG_MODE_CYCLE_COUNT_Val << CMCC_MCFG_MODE_Pos) -#define CMCC_MCFG_MODE_IHIT_COUNT (CMCC_MCFG_MODE_IHIT_COUNT_Val << CMCC_MCFG_MODE_Pos) -#define CMCC_MCFG_MODE_DHIT_COUNT (CMCC_MCFG_MODE_DHIT_COUNT_Val << CMCC_MCFG_MODE_Pos) -#define CMCC_MCFG_MASK _U_(0x00000003) /**< \brief (CMCC_MCFG) MASK Register */ - -/* -------- CMCC_MEN : (CMCC Offset: 0x2C) (R/W 32) Cache Monitor Enable Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t MENABLE:1; /*!< bit: 0 Cache Controller Monitor Enable */ - uint32_t :31; /*!< bit: 1..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_MEN_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_MEN_OFFSET 0x2C /**< \brief (CMCC_MEN offset) Cache Monitor Enable Register */ -#define CMCC_MEN_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MEN reset_value) Cache Monitor Enable Register */ - -#define CMCC_MEN_MENABLE_Pos 0 /**< \brief (CMCC_MEN) Cache Controller Monitor Enable */ -#define CMCC_MEN_MENABLE (_U_(0x1) << CMCC_MEN_MENABLE_Pos) -#define CMCC_MEN_MASK _U_(0x00000001) /**< \brief (CMCC_MEN) MASK Register */ - -/* -------- CMCC_MCTRL : (CMCC Offset: 0x30) ( /W 32) Cache Monitor Control Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWRST:1; /*!< bit: 0 Cache Controller Software Reset */ - uint32_t :31; /*!< bit: 1..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_MCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_MCTRL_OFFSET 0x30 /**< \brief (CMCC_MCTRL offset) Cache Monitor Control Register */ -#define CMCC_MCTRL_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MCTRL reset_value) Cache Monitor Control Register */ - -#define CMCC_MCTRL_SWRST_Pos 0 /**< \brief (CMCC_MCTRL) Cache Controller Software Reset */ -#define CMCC_MCTRL_SWRST (_U_(0x1) << CMCC_MCTRL_SWRST_Pos) -#define CMCC_MCTRL_MASK _U_(0x00000001) /**< \brief (CMCC_MCTRL) MASK Register */ - -/* -------- CMCC_MSR : (CMCC Offset: 0x34) (R/ 32) Cache Monitor Status Register -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t EVENT_CNT:32; /*!< bit: 0..31 Monitor Event Counter */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} CMCC_MSR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define CMCC_MSR_OFFSET 0x34 /**< \brief (CMCC_MSR offset) Cache Monitor Status Register */ -#define CMCC_MSR_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MSR reset_value) Cache Monitor Status Register */ - -#define CMCC_MSR_EVENT_CNT_Pos 0 /**< \brief (CMCC_MSR) Monitor Event Counter */ -#define CMCC_MSR_EVENT_CNT_Msk (_U_(0xFFFFFFFF) << CMCC_MSR_EVENT_CNT_Pos) -#define CMCC_MSR_EVENT_CNT(value) (CMCC_MSR_EVENT_CNT_Msk & ((value) << CMCC_MSR_EVENT_CNT_Pos)) -#define CMCC_MSR_MASK _U_(0xFFFFFFFF) /**< \brief (CMCC_MSR) MASK Register */ - -/** \brief CMCC APB hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __I CMCC_TYPE_Type TYPE; /**< \brief Offset: 0x00 (R/ 32) Cache Type Register */ - __IO CMCC_CFG_Type CFG; /**< \brief Offset: 0x04 (R/W 32) Cache Configuration Register */ - __O CMCC_CTRL_Type CTRL; /**< \brief Offset: 0x08 ( /W 32) Cache Control Register */ - __I CMCC_SR_Type SR; /**< \brief Offset: 0x0C (R/ 32) Cache Status Register */ - __IO CMCC_LCKWAY_Type LCKWAY; /**< \brief Offset: 0x10 (R/W 32) Cache Lock per Way Register */ - RoReg8 Reserved1[0xC]; - __O CMCC_MAINT0_Type MAINT0; /**< \brief Offset: 0x20 ( /W 32) Cache Maintenance Register 0 */ - __O CMCC_MAINT1_Type MAINT1; /**< \brief Offset: 0x24 ( /W 32) Cache Maintenance Register 1 */ - __IO CMCC_MCFG_Type MCFG; /**< \brief Offset: 0x28 (R/W 32) Cache Monitor Configuration Register */ - __IO CMCC_MEN_Type MEN; /**< \brief Offset: 0x2C (R/W 32) Cache Monitor Enable Register */ - __O CMCC_MCTRL_Type MCTRL; /**< \brief Offset: 0x30 ( /W 32) Cache Monitor Control Register */ - __I CMCC_MSR_Type MSR; /**< \brief Offset: 0x34 (R/ 32) Cache Monitor Status Register */ -} Cmcc; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD51_CMCC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for CMCC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_CMCC_COMPONENT_ +#define _SAMD51_CMCC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR CMCC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_CMCC Cortex M Cache Controller */ +/*@{*/ + +#define CMCC_U2015 +#define REV_CMCC 0x600 + +/* -------- CMCC_TYPE : (CMCC Offset: 0x00) (R/ 32) Cache Type Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t GCLK:1; /*!< bit: 1 dynamic Clock Gating supported */ + uint32_t :2; /*!< bit: 2.. 3 Reserved */ + uint32_t RRP:1; /*!< bit: 4 Round Robin Policy supported */ + uint32_t WAYNUM:2; /*!< bit: 5.. 6 Number of Way */ + uint32_t LCKDOWN:1; /*!< bit: 7 Lock Down supported */ + uint32_t CSIZE:3; /*!< bit: 8..10 Cache Size */ + uint32_t CLSIZE:3; /*!< bit: 11..13 Cache Line Size */ + uint32_t :18; /*!< bit: 14..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_TYPE_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_TYPE_OFFSET 0x00 /**< \brief (CMCC_TYPE offset) Cache Type Register */ +#define CMCC_TYPE_RESETVALUE _U_(0x000012D2) /**< \brief (CMCC_TYPE reset_value) Cache Type Register */ + +#define CMCC_TYPE_GCLK_Pos 1 /**< \brief (CMCC_TYPE) dynamic Clock Gating supported */ +#define CMCC_TYPE_GCLK (_U_(0x1) << CMCC_TYPE_GCLK_Pos) +#define CMCC_TYPE_RRP_Pos 4 /**< \brief (CMCC_TYPE) Round Robin Policy supported */ +#define CMCC_TYPE_RRP (_U_(0x1) << CMCC_TYPE_RRP_Pos) +#define CMCC_TYPE_WAYNUM_Pos 5 /**< \brief (CMCC_TYPE) Number of Way */ +#define CMCC_TYPE_WAYNUM_Msk (_U_(0x3) << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_WAYNUM(value) (CMCC_TYPE_WAYNUM_Msk & ((value) << CMCC_TYPE_WAYNUM_Pos)) +#define CMCC_TYPE_WAYNUM_DMAPPED_Val _U_(0x0) /**< \brief (CMCC_TYPE) Direct Mapped Cache */ +#define CMCC_TYPE_WAYNUM_ARCH2WAY_Val _U_(0x1) /**< \brief (CMCC_TYPE) 2-WAY set associative */ +#define CMCC_TYPE_WAYNUM_ARCH4WAY_Val _U_(0x2) /**< \brief (CMCC_TYPE) 4-WAY set associative */ +#define CMCC_TYPE_WAYNUM_DMAPPED (CMCC_TYPE_WAYNUM_DMAPPED_Val << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_WAYNUM_ARCH2WAY (CMCC_TYPE_WAYNUM_ARCH2WAY_Val << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_WAYNUM_ARCH4WAY (CMCC_TYPE_WAYNUM_ARCH4WAY_Val << CMCC_TYPE_WAYNUM_Pos) +#define CMCC_TYPE_LCKDOWN_Pos 7 /**< \brief (CMCC_TYPE) Lock Down supported */ +#define CMCC_TYPE_LCKDOWN (_U_(0x1) << CMCC_TYPE_LCKDOWN_Pos) +#define CMCC_TYPE_CSIZE_Pos 8 /**< \brief (CMCC_TYPE) Cache Size */ +#define CMCC_TYPE_CSIZE_Msk (_U_(0x7) << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE(value) (CMCC_TYPE_CSIZE_Msk & ((value) << CMCC_TYPE_CSIZE_Pos)) +#define CMCC_TYPE_CSIZE_CSIZE_1KB_Val _U_(0x0) /**< \brief (CMCC_TYPE) Cache Size is 1 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_2KB_Val _U_(0x1) /**< \brief (CMCC_TYPE) Cache Size is 2 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_4KB_Val _U_(0x2) /**< \brief (CMCC_TYPE) Cache Size is 4 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_8KB_Val _U_(0x3) /**< \brief (CMCC_TYPE) Cache Size is 8 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_16KB_Val _U_(0x4) /**< \brief (CMCC_TYPE) Cache Size is 16 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_32KB_Val _U_(0x5) /**< \brief (CMCC_TYPE) Cache Size is 32 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_64KB_Val _U_(0x6) /**< \brief (CMCC_TYPE) Cache Size is 64 KB */ +#define CMCC_TYPE_CSIZE_CSIZE_1KB (CMCC_TYPE_CSIZE_CSIZE_1KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_2KB (CMCC_TYPE_CSIZE_CSIZE_2KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_4KB (CMCC_TYPE_CSIZE_CSIZE_4KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_8KB (CMCC_TYPE_CSIZE_CSIZE_8KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_16KB (CMCC_TYPE_CSIZE_CSIZE_16KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_32KB (CMCC_TYPE_CSIZE_CSIZE_32KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CSIZE_CSIZE_64KB (CMCC_TYPE_CSIZE_CSIZE_64KB_Val << CMCC_TYPE_CSIZE_Pos) +#define CMCC_TYPE_CLSIZE_Pos 11 /**< \brief (CMCC_TYPE) Cache Line Size */ +#define CMCC_TYPE_CLSIZE_Msk (_U_(0x7) << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE(value) (CMCC_TYPE_CLSIZE_Msk & ((value) << CMCC_TYPE_CLSIZE_Pos)) +#define CMCC_TYPE_CLSIZE_CLSIZE_4B_Val _U_(0x0) /**< \brief (CMCC_TYPE) Cache Line Size is 4 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_8B_Val _U_(0x1) /**< \brief (CMCC_TYPE) Cache Line Size is 8 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_16B_Val _U_(0x2) /**< \brief (CMCC_TYPE) Cache Line Size is 16 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_32B_Val _U_(0x3) /**< \brief (CMCC_TYPE) Cache Line Size is 32 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_64B_Val _U_(0x4) /**< \brief (CMCC_TYPE) Cache Line Size is 64 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_128B_Val _U_(0x5) /**< \brief (CMCC_TYPE) Cache Line Size is 128 bytes */ +#define CMCC_TYPE_CLSIZE_CLSIZE_4B (CMCC_TYPE_CLSIZE_CLSIZE_4B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_8B (CMCC_TYPE_CLSIZE_CLSIZE_8B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_16B (CMCC_TYPE_CLSIZE_CLSIZE_16B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_32B (CMCC_TYPE_CLSIZE_CLSIZE_32B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_64B (CMCC_TYPE_CLSIZE_CLSIZE_64B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_CLSIZE_CLSIZE_128B (CMCC_TYPE_CLSIZE_CLSIZE_128B_Val << CMCC_TYPE_CLSIZE_Pos) +#define CMCC_TYPE_MASK _U_(0x00003FF2) /**< \brief (CMCC_TYPE) MASK Register */ + +/* -------- CMCC_CFG : (CMCC Offset: 0x04) (R/W 32) Cache Configuration Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :1; /*!< bit: 0 Reserved */ + uint32_t ICDIS:1; /*!< bit: 1 Instruction Cache Disable */ + uint32_t DCDIS:1; /*!< bit: 2 Data Cache Disable */ + uint32_t :1; /*!< bit: 3 Reserved */ + uint32_t CSIZESW:3; /*!< bit: 4.. 6 Cache size configured by software */ + uint32_t :25; /*!< bit: 7..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_CFG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_CFG_OFFSET 0x04 /**< \brief (CMCC_CFG offset) Cache Configuration Register */ +#define CMCC_CFG_RESETVALUE _U_(0x00000020) /**< \brief (CMCC_CFG reset_value) Cache Configuration Register */ + +#define CMCC_CFG_ICDIS_Pos 1 /**< \brief (CMCC_CFG) Instruction Cache Disable */ +#define CMCC_CFG_ICDIS (_U_(0x1) << CMCC_CFG_ICDIS_Pos) +#define CMCC_CFG_DCDIS_Pos 2 /**< \brief (CMCC_CFG) Data Cache Disable */ +#define CMCC_CFG_DCDIS (_U_(0x1) << CMCC_CFG_DCDIS_Pos) +#define CMCC_CFG_CSIZESW_Pos 4 /**< \brief (CMCC_CFG) Cache size configured by software */ +#define CMCC_CFG_CSIZESW_Msk (_U_(0x7) << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW(value) (CMCC_CFG_CSIZESW_Msk & ((value) << CMCC_CFG_CSIZESW_Pos)) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_1KB_Val _U_(0x0) /**< \brief (CMCC_CFG) the Cache Size is configured to 1KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_2KB_Val _U_(0x1) /**< \brief (CMCC_CFG) the Cache Size is configured to 2KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_4KB_Val _U_(0x2) /**< \brief (CMCC_CFG) the Cache Size is configured to 4KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_8KB_Val _U_(0x3) /**< \brief (CMCC_CFG) the Cache Size is configured to 8KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_16KB_Val _U_(0x4) /**< \brief (CMCC_CFG) the Cache Size is configured to 16KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_32KB_Val _U_(0x5) /**< \brief (CMCC_CFG) the Cache Size is configured to 32KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_64KB_Val _U_(0x6) /**< \brief (CMCC_CFG) the Cache Size is configured to 64KB */ +#define CMCC_CFG_CSIZESW_CONF_CSIZE_1KB (CMCC_CFG_CSIZESW_CONF_CSIZE_1KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_2KB (CMCC_CFG_CSIZESW_CONF_CSIZE_2KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_4KB (CMCC_CFG_CSIZESW_CONF_CSIZE_4KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_8KB (CMCC_CFG_CSIZESW_CONF_CSIZE_8KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_16KB (CMCC_CFG_CSIZESW_CONF_CSIZE_16KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_32KB (CMCC_CFG_CSIZESW_CONF_CSIZE_32KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_CSIZESW_CONF_CSIZE_64KB (CMCC_CFG_CSIZESW_CONF_CSIZE_64KB_Val << CMCC_CFG_CSIZESW_Pos) +#define CMCC_CFG_MASK _U_(0x00000076) /**< \brief (CMCC_CFG) MASK Register */ + +/* -------- CMCC_CTRL : (CMCC Offset: 0x08) ( /W 32) Cache Control Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CEN:1; /*!< bit: 0 Cache Controller Enable */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_CTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_CTRL_OFFSET 0x08 /**< \brief (CMCC_CTRL offset) Cache Control Register */ +#define CMCC_CTRL_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_CTRL reset_value) Cache Control Register */ + +#define CMCC_CTRL_CEN_Pos 0 /**< \brief (CMCC_CTRL) Cache Controller Enable */ +#define CMCC_CTRL_CEN (_U_(0x1) << CMCC_CTRL_CEN_Pos) +#define CMCC_CTRL_MASK _U_(0x00000001) /**< \brief (CMCC_CTRL) MASK Register */ + +/* -------- CMCC_SR : (CMCC Offset: 0x0C) (R/ 32) Cache Status Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t CSTS:1; /*!< bit: 0 Cache Controller Status */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_SR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_SR_OFFSET 0x0C /**< \brief (CMCC_SR offset) Cache Status Register */ +#define CMCC_SR_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_SR reset_value) Cache Status Register */ + +#define CMCC_SR_CSTS_Pos 0 /**< \brief (CMCC_SR) Cache Controller Status */ +#define CMCC_SR_CSTS (_U_(0x1) << CMCC_SR_CSTS_Pos) +#define CMCC_SR_MASK _U_(0x00000001) /**< \brief (CMCC_SR) MASK Register */ + +/* -------- CMCC_LCKWAY : (CMCC Offset: 0x10) (R/W 32) Cache Lock per Way Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t LCKWAY:4; /*!< bit: 0.. 3 Lockdown way Register */ + uint32_t :28; /*!< bit: 4..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_LCKWAY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_LCKWAY_OFFSET 0x10 /**< \brief (CMCC_LCKWAY offset) Cache Lock per Way Register */ +#define CMCC_LCKWAY_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_LCKWAY reset_value) Cache Lock per Way Register */ + +#define CMCC_LCKWAY_LCKWAY_Pos 0 /**< \brief (CMCC_LCKWAY) Lockdown way Register */ +#define CMCC_LCKWAY_LCKWAY_Msk (_U_(0xF) << CMCC_LCKWAY_LCKWAY_Pos) +#define CMCC_LCKWAY_LCKWAY(value) (CMCC_LCKWAY_LCKWAY_Msk & ((value) << CMCC_LCKWAY_LCKWAY_Pos)) +#define CMCC_LCKWAY_MASK _U_(0x0000000F) /**< \brief (CMCC_LCKWAY) MASK Register */ + +/* -------- CMCC_MAINT0 : (CMCC Offset: 0x20) ( /W 32) Cache Maintenance Register 0 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t INVALL:1; /*!< bit: 0 Cache Controller invalidate All */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MAINT0_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MAINT0_OFFSET 0x20 /**< \brief (CMCC_MAINT0 offset) Cache Maintenance Register 0 */ +#define CMCC_MAINT0_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MAINT0 reset_value) Cache Maintenance Register 0 */ + +#define CMCC_MAINT0_INVALL_Pos 0 /**< \brief (CMCC_MAINT0) Cache Controller invalidate All */ +#define CMCC_MAINT0_INVALL (_U_(0x1) << CMCC_MAINT0_INVALL_Pos) +#define CMCC_MAINT0_MASK _U_(0x00000001) /**< \brief (CMCC_MAINT0) MASK Register */ + +/* -------- CMCC_MAINT1 : (CMCC Offset: 0x24) ( /W 32) Cache Maintenance Register 1 -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t :4; /*!< bit: 0.. 3 Reserved */ + uint32_t INDEX:8; /*!< bit: 4..11 Invalidate Index */ + uint32_t :16; /*!< bit: 12..27 Reserved */ + uint32_t WAY:4; /*!< bit: 28..31 Invalidate Way */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MAINT1_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MAINT1_OFFSET 0x24 /**< \brief (CMCC_MAINT1 offset) Cache Maintenance Register 1 */ +#define CMCC_MAINT1_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MAINT1 reset_value) Cache Maintenance Register 1 */ + +#define CMCC_MAINT1_INDEX_Pos 4 /**< \brief (CMCC_MAINT1) Invalidate Index */ +#define CMCC_MAINT1_INDEX_Msk (_U_(0xFF) << CMCC_MAINT1_INDEX_Pos) +#define CMCC_MAINT1_INDEX(value) (CMCC_MAINT1_INDEX_Msk & ((value) << CMCC_MAINT1_INDEX_Pos)) +#define CMCC_MAINT1_WAY_Pos 28 /**< \brief (CMCC_MAINT1) Invalidate Way */ +#define CMCC_MAINT1_WAY_Msk (_U_(0xF) << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY(value) (CMCC_MAINT1_WAY_Msk & ((value) << CMCC_MAINT1_WAY_Pos)) +#define CMCC_MAINT1_WAY_WAY0_Val _U_(0x0) /**< \brief (CMCC_MAINT1) Way 0 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY1_Val _U_(0x1) /**< \brief (CMCC_MAINT1) Way 1 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY2_Val _U_(0x2) /**< \brief (CMCC_MAINT1) Way 2 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY3_Val _U_(0x3) /**< \brief (CMCC_MAINT1) Way 3 is selection for index invalidation */ +#define CMCC_MAINT1_WAY_WAY0 (CMCC_MAINT1_WAY_WAY0_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY_WAY1 (CMCC_MAINT1_WAY_WAY1_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY_WAY2 (CMCC_MAINT1_WAY_WAY2_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_WAY_WAY3 (CMCC_MAINT1_WAY_WAY3_Val << CMCC_MAINT1_WAY_Pos) +#define CMCC_MAINT1_MASK _U_(0xF0000FF0) /**< \brief (CMCC_MAINT1) MASK Register */ + +/* -------- CMCC_MCFG : (CMCC Offset: 0x28) (R/W 32) Cache Monitor Configuration Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t MODE:2; /*!< bit: 0.. 1 Cache Controller Monitor Counter Mode */ + uint32_t :30; /*!< bit: 2..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MCFG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MCFG_OFFSET 0x28 /**< \brief (CMCC_MCFG offset) Cache Monitor Configuration Register */ +#define CMCC_MCFG_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MCFG reset_value) Cache Monitor Configuration Register */ + +#define CMCC_MCFG_MODE_Pos 0 /**< \brief (CMCC_MCFG) Cache Controller Monitor Counter Mode */ +#define CMCC_MCFG_MODE_Msk (_U_(0x3) << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MODE(value) (CMCC_MCFG_MODE_Msk & ((value) << CMCC_MCFG_MODE_Pos)) +#define CMCC_MCFG_MODE_CYCLE_COUNT_Val _U_(0x0) /**< \brief (CMCC_MCFG) cycle counter */ +#define CMCC_MCFG_MODE_IHIT_COUNT_Val _U_(0x1) /**< \brief (CMCC_MCFG) instruction hit counter */ +#define CMCC_MCFG_MODE_DHIT_COUNT_Val _U_(0x2) /**< \brief (CMCC_MCFG) data hit counter */ +#define CMCC_MCFG_MODE_CYCLE_COUNT (CMCC_MCFG_MODE_CYCLE_COUNT_Val << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MODE_IHIT_COUNT (CMCC_MCFG_MODE_IHIT_COUNT_Val << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MODE_DHIT_COUNT (CMCC_MCFG_MODE_DHIT_COUNT_Val << CMCC_MCFG_MODE_Pos) +#define CMCC_MCFG_MASK _U_(0x00000003) /**< \brief (CMCC_MCFG) MASK Register */ + +/* -------- CMCC_MEN : (CMCC Offset: 0x2C) (R/W 32) Cache Monitor Enable Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t MENABLE:1; /*!< bit: 0 Cache Controller Monitor Enable */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MEN_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MEN_OFFSET 0x2C /**< \brief (CMCC_MEN offset) Cache Monitor Enable Register */ +#define CMCC_MEN_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MEN reset_value) Cache Monitor Enable Register */ + +#define CMCC_MEN_MENABLE_Pos 0 /**< \brief (CMCC_MEN) Cache Controller Monitor Enable */ +#define CMCC_MEN_MENABLE (_U_(0x1) << CMCC_MEN_MENABLE_Pos) +#define CMCC_MEN_MASK _U_(0x00000001) /**< \brief (CMCC_MEN) MASK Register */ + +/* -------- CMCC_MCTRL : (CMCC Offset: 0x30) ( /W 32) Cache Monitor Control Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Cache Controller Software Reset */ + uint32_t :31; /*!< bit: 1..31 Reserved */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MCTRL_OFFSET 0x30 /**< \brief (CMCC_MCTRL offset) Cache Monitor Control Register */ +#define CMCC_MCTRL_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MCTRL reset_value) Cache Monitor Control Register */ + +#define CMCC_MCTRL_SWRST_Pos 0 /**< \brief (CMCC_MCTRL) Cache Controller Software Reset */ +#define CMCC_MCTRL_SWRST (_U_(0x1) << CMCC_MCTRL_SWRST_Pos) +#define CMCC_MCTRL_MASK _U_(0x00000001) /**< \brief (CMCC_MCTRL) MASK Register */ + +/* -------- CMCC_MSR : (CMCC Offset: 0x34) (R/ 32) Cache Monitor Status Register -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t EVENT_CNT:32; /*!< bit: 0..31 Monitor Event Counter */ + } bit; /*!< Structure used for bit access */ + uint32_t reg; /*!< Type used for register access */ +} CMCC_MSR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define CMCC_MSR_OFFSET 0x34 /**< \brief (CMCC_MSR offset) Cache Monitor Status Register */ +#define CMCC_MSR_RESETVALUE _U_(0x00000000) /**< \brief (CMCC_MSR reset_value) Cache Monitor Status Register */ + +#define CMCC_MSR_EVENT_CNT_Pos 0 /**< \brief (CMCC_MSR) Monitor Event Counter */ +#define CMCC_MSR_EVENT_CNT_Msk (_U_(0xFFFFFFFF) << CMCC_MSR_EVENT_CNT_Pos) +#define CMCC_MSR_EVENT_CNT(value) (CMCC_MSR_EVENT_CNT_Msk & ((value) << CMCC_MSR_EVENT_CNT_Pos)) +#define CMCC_MSR_MASK _U_(0xFFFFFFFF) /**< \brief (CMCC_MSR) MASK Register */ + +/** \brief CMCC APB hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __I CMCC_TYPE_Type TYPE; /**< \brief Offset: 0x00 (R/ 32) Cache Type Register */ + __IO CMCC_CFG_Type CFG; /**< \brief Offset: 0x04 (R/W 32) Cache Configuration Register */ + __O CMCC_CTRL_Type CTRL; /**< \brief Offset: 0x08 ( /W 32) Cache Control Register */ + __I CMCC_SR_Type SR; /**< \brief Offset: 0x0C (R/ 32) Cache Status Register */ + __IO CMCC_LCKWAY_Type LCKWAY; /**< \brief Offset: 0x10 (R/W 32) Cache Lock per Way Register */ + RoReg8 Reserved1[0xC]; + __O CMCC_MAINT0_Type MAINT0; /**< \brief Offset: 0x20 ( /W 32) Cache Maintenance Register 0 */ + __O CMCC_MAINT1_Type MAINT1; /**< \brief Offset: 0x24 ( /W 32) Cache Maintenance Register 1 */ + __IO CMCC_MCFG_Type MCFG; /**< \brief Offset: 0x28 (R/W 32) Cache Monitor Configuration Register */ + __IO CMCC_MEN_Type MEN; /**< \brief Offset: 0x2C (R/W 32) Cache Monitor Enable Register */ + __O CMCC_MCTRL_Type MCTRL; /**< \brief Offset: 0x30 ( /W 32) Cache Monitor Control Register */ + __I CMCC_MSR_Type MSR; /**< \brief Offset: 0x34 (R/ 32) Cache Monitor Status Register */ +} Cmcc; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_CMCC_COMPONENT_ */ diff --git a/lib/samd51/samd51a/include/component/dac.h b/lib/samd51/samd51a/include/component/dac.h index 63ac31b..663c891 100644 --- a/lib/samd51/samd51a/include/component/dac.h +++ b/lib/samd51/samd51a/include/component/dac.h @@ -1,544 +1,544 @@ -/** - * \file - * - * \brief Component description for DAC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_DAC_COMPONENT_ -#define _SAMD51_DAC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR DAC */ -/* ========================================================================== */ -/** \addtogroup SAMD51_DAC Digital-to-Analog Converter */ -/*@{*/ - -#define DAC_U2502 -#define REV_DAC 0x100 - -/* -------- DAC_CTRLA : (DAC Offset: 0x00) (R/W 8) Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t SWRST:1; /*!< bit: 0 Software Reset */ - uint8_t ENABLE:1; /*!< bit: 1 Enable DAC Controller */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_CTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_CTRLA_OFFSET 0x00 /**< \brief (DAC_CTRLA offset) Control A */ -#define DAC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLA reset_value) Control A */ - -#define DAC_CTRLA_SWRST_Pos 0 /**< \brief (DAC_CTRLA) Software Reset */ -#define DAC_CTRLA_SWRST (_U_(0x1) << DAC_CTRLA_SWRST_Pos) -#define DAC_CTRLA_ENABLE_Pos 1 /**< \brief (DAC_CTRLA) Enable DAC Controller */ -#define DAC_CTRLA_ENABLE (_U_(0x1) << DAC_CTRLA_ENABLE_Pos) -#define DAC_CTRLA_MASK _U_(0x03) /**< \brief (DAC_CTRLA) MASK Register */ - -/* -------- DAC_CTRLB : (DAC Offset: 0x01) (R/W 8) Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DIFF:1; /*!< bit: 0 Differential mode enable */ - uint8_t REFSEL:2; /*!< bit: 1.. 2 Reference Selection for DAC0/1 */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_CTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_CTRLB_OFFSET 0x01 /**< \brief (DAC_CTRLB offset) Control B */ -#define DAC_CTRLB_RESETVALUE _U_(0x02) /**< \brief (DAC_CTRLB reset_value) Control B */ - -#define DAC_CTRLB_DIFF_Pos 0 /**< \brief (DAC_CTRLB) Differential mode enable */ -#define DAC_CTRLB_DIFF (_U_(0x1) << DAC_CTRLB_DIFF_Pos) -#define DAC_CTRLB_REFSEL_Pos 1 /**< \brief (DAC_CTRLB) Reference Selection for DAC0/1 */ -#define DAC_CTRLB_REFSEL_Msk (_U_(0x3) << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL(value) (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos)) -#define DAC_CTRLB_REFSEL_VREFPU_Val _U_(0x0) /**< \brief (DAC_CTRLB) External reference unbuffered */ -#define DAC_CTRLB_REFSEL_VDDANA_Val _U_(0x1) /**< \brief (DAC_CTRLB) Analog supply */ -#define DAC_CTRLB_REFSEL_VREFPB_Val _U_(0x2) /**< \brief (DAC_CTRLB) External reference buffered */ -#define DAC_CTRLB_REFSEL_INTREF_Val _U_(0x3) /**< \brief (DAC_CTRLB) Internal bandgap reference */ -#define DAC_CTRLB_REFSEL_VREFPU (DAC_CTRLB_REFSEL_VREFPU_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL_VDDANA (DAC_CTRLB_REFSEL_VDDANA_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL_VREFPB (DAC_CTRLB_REFSEL_VREFPB_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_REFSEL_INTREF (DAC_CTRLB_REFSEL_INTREF_Val << DAC_CTRLB_REFSEL_Pos) -#define DAC_CTRLB_MASK _U_(0x07) /**< \brief (DAC_CTRLB) MASK Register */ - -/* -------- DAC_EVCTRL : (DAC Offset: 0x02) (R/W 8) Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t STARTEI0:1; /*!< bit: 0 Start Conversion Event Input DAC 0 */ - uint8_t STARTEI1:1; /*!< bit: 1 Start Conversion Event Input DAC 1 */ - uint8_t EMPTYEO0:1; /*!< bit: 2 Data Buffer Empty Event Output DAC 0 */ - uint8_t EMPTYEO1:1; /*!< bit: 3 Data Buffer Empty Event Output DAC 1 */ - uint8_t INVEI0:1; /*!< bit: 4 Enable Invertion of DAC 0 input event */ - uint8_t INVEI1:1; /*!< bit: 5 Enable Invertion of DAC 1 input event */ - uint8_t RESRDYEO0:1; /*!< bit: 6 Result Ready Event Output 0 */ - uint8_t RESRDYEO1:1; /*!< bit: 7 Result Ready Event Output 1 */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t STARTEI:2; /*!< bit: 0.. 1 Start Conversion Event Input DAC x */ - uint8_t EMPTYEO:2; /*!< bit: 2.. 3 Data Buffer Empty Event Output DAC x */ - uint8_t INVEI:2; /*!< bit: 4.. 5 Enable Invertion of DAC x input event */ - uint8_t RESRDYEO:2; /*!< bit: 6.. 7 Result Ready Event Output x */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_EVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_EVCTRL_OFFSET 0x02 /**< \brief (DAC_EVCTRL offset) Event Control */ -#define DAC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_EVCTRL reset_value) Event Control */ - -#define DAC_EVCTRL_STARTEI0_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC 0 */ -#define DAC_EVCTRL_STARTEI0 (_U_(1) << DAC_EVCTRL_STARTEI0_Pos) -#define DAC_EVCTRL_STARTEI1_Pos 1 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC 1 */ -#define DAC_EVCTRL_STARTEI1 (_U_(1) << DAC_EVCTRL_STARTEI1_Pos) -#define DAC_EVCTRL_STARTEI_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC x */ -#define DAC_EVCTRL_STARTEI_Msk (_U_(0x3) << DAC_EVCTRL_STARTEI_Pos) -#define DAC_EVCTRL_STARTEI(value) (DAC_EVCTRL_STARTEI_Msk & ((value) << DAC_EVCTRL_STARTEI_Pos)) -#define DAC_EVCTRL_EMPTYEO0_Pos 2 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC 0 */ -#define DAC_EVCTRL_EMPTYEO0 (_U_(1) << DAC_EVCTRL_EMPTYEO0_Pos) -#define DAC_EVCTRL_EMPTYEO1_Pos 3 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC 1 */ -#define DAC_EVCTRL_EMPTYEO1 (_U_(1) << DAC_EVCTRL_EMPTYEO1_Pos) -#define DAC_EVCTRL_EMPTYEO_Pos 2 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC x */ -#define DAC_EVCTRL_EMPTYEO_Msk (_U_(0x3) << DAC_EVCTRL_EMPTYEO_Pos) -#define DAC_EVCTRL_EMPTYEO(value) (DAC_EVCTRL_EMPTYEO_Msk & ((value) << DAC_EVCTRL_EMPTYEO_Pos)) -#define DAC_EVCTRL_INVEI0_Pos 4 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC 0 input event */ -#define DAC_EVCTRL_INVEI0 (_U_(1) << DAC_EVCTRL_INVEI0_Pos) -#define DAC_EVCTRL_INVEI1_Pos 5 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC 1 input event */ -#define DAC_EVCTRL_INVEI1 (_U_(1) << DAC_EVCTRL_INVEI1_Pos) -#define DAC_EVCTRL_INVEI_Pos 4 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC x input event */ -#define DAC_EVCTRL_INVEI_Msk (_U_(0x3) << DAC_EVCTRL_INVEI_Pos) -#define DAC_EVCTRL_INVEI(value) (DAC_EVCTRL_INVEI_Msk & ((value) << DAC_EVCTRL_INVEI_Pos)) -#define DAC_EVCTRL_RESRDYEO0_Pos 6 /**< \brief (DAC_EVCTRL) Result Ready Event Output 0 */ -#define DAC_EVCTRL_RESRDYEO0 (_U_(1) << DAC_EVCTRL_RESRDYEO0_Pos) -#define DAC_EVCTRL_RESRDYEO1_Pos 7 /**< \brief (DAC_EVCTRL) Result Ready Event Output 1 */ -#define DAC_EVCTRL_RESRDYEO1 (_U_(1) << DAC_EVCTRL_RESRDYEO1_Pos) -#define DAC_EVCTRL_RESRDYEO_Pos 6 /**< \brief (DAC_EVCTRL) Result Ready Event Output x */ -#define DAC_EVCTRL_RESRDYEO_Msk (_U_(0x3) << DAC_EVCTRL_RESRDYEO_Pos) -#define DAC_EVCTRL_RESRDYEO(value) (DAC_EVCTRL_RESRDYEO_Msk & ((value) << DAC_EVCTRL_RESRDYEO_Pos)) -#define DAC_EVCTRL_MASK _U_(0xFF) /**< \brief (DAC_EVCTRL) MASK Register */ - -/* -------- DAC_INTENCLR : (DAC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t UNDERRUN0:1; /*!< bit: 0 Underrun 0 Interrupt Enable */ - uint8_t UNDERRUN1:1; /*!< bit: 1 Underrun 1 Interrupt Enable */ - uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty Interrupt Enable */ - uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty Interrupt Enable */ - uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready Interrupt Enable */ - uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready Interrupt Enable */ - uint8_t OVERRUN0:1; /*!< bit: 6 Overrun 0 Interrupt Enable */ - uint8_t OVERRUN1:1; /*!< bit: 7 Overrun 1 Interrupt Enable */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Underrun x Interrupt Enable */ - uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty Interrupt Enable */ - uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready Interrupt Enable */ - uint8_t OVERRUN:2; /*!< bit: 6.. 7 Overrun x Interrupt Enable */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_INTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_INTENCLR_OFFSET 0x04 /**< \brief (DAC_INTENCLR offset) Interrupt Enable Clear */ -#define DAC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENCLR reset_value) Interrupt Enable Clear */ - -#define DAC_INTENCLR_UNDERRUN0_Pos 0 /**< \brief (DAC_INTENCLR) Underrun 0 Interrupt Enable */ -#define DAC_INTENCLR_UNDERRUN0 (_U_(1) << DAC_INTENCLR_UNDERRUN0_Pos) -#define DAC_INTENCLR_UNDERRUN1_Pos 1 /**< \brief (DAC_INTENCLR) Underrun 1 Interrupt Enable */ -#define DAC_INTENCLR_UNDERRUN1 (_U_(1) << DAC_INTENCLR_UNDERRUN1_Pos) -#define DAC_INTENCLR_UNDERRUN_Pos 0 /**< \brief (DAC_INTENCLR) Underrun x Interrupt Enable */ -#define DAC_INTENCLR_UNDERRUN_Msk (_U_(0x3) << DAC_INTENCLR_UNDERRUN_Pos) -#define DAC_INTENCLR_UNDERRUN(value) (DAC_INTENCLR_UNDERRUN_Msk & ((value) << DAC_INTENCLR_UNDERRUN_Pos)) -#define DAC_INTENCLR_EMPTY0_Pos 2 /**< \brief (DAC_INTENCLR) Data Buffer 0 Empty Interrupt Enable */ -#define DAC_INTENCLR_EMPTY0 (_U_(1) << DAC_INTENCLR_EMPTY0_Pos) -#define DAC_INTENCLR_EMPTY1_Pos 3 /**< \brief (DAC_INTENCLR) Data Buffer 1 Empty Interrupt Enable */ -#define DAC_INTENCLR_EMPTY1 (_U_(1) << DAC_INTENCLR_EMPTY1_Pos) -#define DAC_INTENCLR_EMPTY_Pos 2 /**< \brief (DAC_INTENCLR) Data Buffer x Empty Interrupt Enable */ -#define DAC_INTENCLR_EMPTY_Msk (_U_(0x3) << DAC_INTENCLR_EMPTY_Pos) -#define DAC_INTENCLR_EMPTY(value) (DAC_INTENCLR_EMPTY_Msk & ((value) << DAC_INTENCLR_EMPTY_Pos)) -#define DAC_INTENCLR_RESRDY0_Pos 4 /**< \brief (DAC_INTENCLR) Result 0 Ready Interrupt Enable */ -#define DAC_INTENCLR_RESRDY0 (_U_(1) << DAC_INTENCLR_RESRDY0_Pos) -#define DAC_INTENCLR_RESRDY1_Pos 5 /**< \brief (DAC_INTENCLR) Result 1 Ready Interrupt Enable */ -#define DAC_INTENCLR_RESRDY1 (_U_(1) << DAC_INTENCLR_RESRDY1_Pos) -#define DAC_INTENCLR_RESRDY_Pos 4 /**< \brief (DAC_INTENCLR) Result x Ready Interrupt Enable */ -#define DAC_INTENCLR_RESRDY_Msk (_U_(0x3) << DAC_INTENCLR_RESRDY_Pos) -#define DAC_INTENCLR_RESRDY(value) (DAC_INTENCLR_RESRDY_Msk & ((value) << DAC_INTENCLR_RESRDY_Pos)) -#define DAC_INTENCLR_OVERRUN0_Pos 6 /**< \brief (DAC_INTENCLR) Overrun 0 Interrupt Enable */ -#define DAC_INTENCLR_OVERRUN0 (_U_(1) << DAC_INTENCLR_OVERRUN0_Pos) -#define DAC_INTENCLR_OVERRUN1_Pos 7 /**< \brief (DAC_INTENCLR) Overrun 1 Interrupt Enable */ -#define DAC_INTENCLR_OVERRUN1 (_U_(1) << DAC_INTENCLR_OVERRUN1_Pos) -#define DAC_INTENCLR_OVERRUN_Pos 6 /**< \brief (DAC_INTENCLR) Overrun x Interrupt Enable */ -#define DAC_INTENCLR_OVERRUN_Msk (_U_(0x3) << DAC_INTENCLR_OVERRUN_Pos) -#define DAC_INTENCLR_OVERRUN(value) (DAC_INTENCLR_OVERRUN_Msk & ((value) << DAC_INTENCLR_OVERRUN_Pos)) -#define DAC_INTENCLR_MASK _U_(0xFF) /**< \brief (DAC_INTENCLR) MASK Register */ - -/* -------- DAC_INTENSET : (DAC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t UNDERRUN0:1; /*!< bit: 0 Underrun 0 Interrupt Enable */ - uint8_t UNDERRUN1:1; /*!< bit: 1 Underrun 1 Interrupt Enable */ - uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty Interrupt Enable */ - uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty Interrupt Enable */ - uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready Interrupt Enable */ - uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready Interrupt Enable */ - uint8_t OVERRUN0:1; /*!< bit: 6 Overrun 0 Interrupt Enable */ - uint8_t OVERRUN1:1; /*!< bit: 7 Overrun 1 Interrupt Enable */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Underrun x Interrupt Enable */ - uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty Interrupt Enable */ - uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready Interrupt Enable */ - uint8_t OVERRUN:2; /*!< bit: 6.. 7 Overrun x Interrupt Enable */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_INTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_INTENSET_OFFSET 0x05 /**< \brief (DAC_INTENSET offset) Interrupt Enable Set */ -#define DAC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENSET reset_value) Interrupt Enable Set */ - -#define DAC_INTENSET_UNDERRUN0_Pos 0 /**< \brief (DAC_INTENSET) Underrun 0 Interrupt Enable */ -#define DAC_INTENSET_UNDERRUN0 (_U_(1) << DAC_INTENSET_UNDERRUN0_Pos) -#define DAC_INTENSET_UNDERRUN1_Pos 1 /**< \brief (DAC_INTENSET) Underrun 1 Interrupt Enable */ -#define DAC_INTENSET_UNDERRUN1 (_U_(1) << DAC_INTENSET_UNDERRUN1_Pos) -#define DAC_INTENSET_UNDERRUN_Pos 0 /**< \brief (DAC_INTENSET) Underrun x Interrupt Enable */ -#define DAC_INTENSET_UNDERRUN_Msk (_U_(0x3) << DAC_INTENSET_UNDERRUN_Pos) -#define DAC_INTENSET_UNDERRUN(value) (DAC_INTENSET_UNDERRUN_Msk & ((value) << DAC_INTENSET_UNDERRUN_Pos)) -#define DAC_INTENSET_EMPTY0_Pos 2 /**< \brief (DAC_INTENSET) Data Buffer 0 Empty Interrupt Enable */ -#define DAC_INTENSET_EMPTY0 (_U_(1) << DAC_INTENSET_EMPTY0_Pos) -#define DAC_INTENSET_EMPTY1_Pos 3 /**< \brief (DAC_INTENSET) Data Buffer 1 Empty Interrupt Enable */ -#define DAC_INTENSET_EMPTY1 (_U_(1) << DAC_INTENSET_EMPTY1_Pos) -#define DAC_INTENSET_EMPTY_Pos 2 /**< \brief (DAC_INTENSET) Data Buffer x Empty Interrupt Enable */ -#define DAC_INTENSET_EMPTY_Msk (_U_(0x3) << DAC_INTENSET_EMPTY_Pos) -#define DAC_INTENSET_EMPTY(value) (DAC_INTENSET_EMPTY_Msk & ((value) << DAC_INTENSET_EMPTY_Pos)) -#define DAC_INTENSET_RESRDY0_Pos 4 /**< \brief (DAC_INTENSET) Result 0 Ready Interrupt Enable */ -#define DAC_INTENSET_RESRDY0 (_U_(1) << DAC_INTENSET_RESRDY0_Pos) -#define DAC_INTENSET_RESRDY1_Pos 5 /**< \brief (DAC_INTENSET) Result 1 Ready Interrupt Enable */ -#define DAC_INTENSET_RESRDY1 (_U_(1) << DAC_INTENSET_RESRDY1_Pos) -#define DAC_INTENSET_RESRDY_Pos 4 /**< \brief (DAC_INTENSET) Result x Ready Interrupt Enable */ -#define DAC_INTENSET_RESRDY_Msk (_U_(0x3) << DAC_INTENSET_RESRDY_Pos) -#define DAC_INTENSET_RESRDY(value) (DAC_INTENSET_RESRDY_Msk & ((value) << DAC_INTENSET_RESRDY_Pos)) -#define DAC_INTENSET_OVERRUN0_Pos 6 /**< \brief (DAC_INTENSET) Overrun 0 Interrupt Enable */ -#define DAC_INTENSET_OVERRUN0 (_U_(1) << DAC_INTENSET_OVERRUN0_Pos) -#define DAC_INTENSET_OVERRUN1_Pos 7 /**< \brief (DAC_INTENSET) Overrun 1 Interrupt Enable */ -#define DAC_INTENSET_OVERRUN1 (_U_(1) << DAC_INTENSET_OVERRUN1_Pos) -#define DAC_INTENSET_OVERRUN_Pos 6 /**< \brief (DAC_INTENSET) Overrun x Interrupt Enable */ -#define DAC_INTENSET_OVERRUN_Msk (_U_(0x3) << DAC_INTENSET_OVERRUN_Pos) -#define DAC_INTENSET_OVERRUN(value) (DAC_INTENSET_OVERRUN_Msk & ((value) << DAC_INTENSET_OVERRUN_Pos)) -#define DAC_INTENSET_MASK _U_(0xFF) /**< \brief (DAC_INTENSET) MASK Register */ - -/* -------- DAC_INTFLAG : (DAC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t UNDERRUN0:1; /*!< bit: 0 Result 0 Underrun */ - __I uint8_t UNDERRUN1:1; /*!< bit: 1 Result 1 Underrun */ - __I uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty */ - __I uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty */ - __I uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready */ - __I uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready */ - __I uint8_t OVERRUN0:1; /*!< bit: 6 Result 0 Overrun */ - __I uint8_t OVERRUN1:1; /*!< bit: 7 Result 1 Overrun */ - } bit; /*!< Structure used for bit access */ - struct { - __I uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Result x Underrun */ - __I uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty */ - __I uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready */ - __I uint8_t OVERRUN:2; /*!< bit: 6.. 7 Result x Overrun */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_INTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_INTFLAG_OFFSET 0x06 /**< \brief (DAC_INTFLAG offset) Interrupt Flag Status and Clear */ -#define DAC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (DAC_INTFLAG reset_value) Interrupt Flag Status and Clear */ - -#define DAC_INTFLAG_UNDERRUN0_Pos 0 /**< \brief (DAC_INTFLAG) Result 0 Underrun */ -#define DAC_INTFLAG_UNDERRUN0 (_U_(1) << DAC_INTFLAG_UNDERRUN0_Pos) -#define DAC_INTFLAG_UNDERRUN1_Pos 1 /**< \brief (DAC_INTFLAG) Result 1 Underrun */ -#define DAC_INTFLAG_UNDERRUN1 (_U_(1) << DAC_INTFLAG_UNDERRUN1_Pos) -#define DAC_INTFLAG_UNDERRUN_Pos 0 /**< \brief (DAC_INTFLAG) Result x Underrun */ -#define DAC_INTFLAG_UNDERRUN_Msk (_U_(0x3) << DAC_INTFLAG_UNDERRUN_Pos) -#define DAC_INTFLAG_UNDERRUN(value) (DAC_INTFLAG_UNDERRUN_Msk & ((value) << DAC_INTFLAG_UNDERRUN_Pos)) -#define DAC_INTFLAG_EMPTY0_Pos 2 /**< \brief (DAC_INTFLAG) Data Buffer 0 Empty */ -#define DAC_INTFLAG_EMPTY0 (_U_(1) << DAC_INTFLAG_EMPTY0_Pos) -#define DAC_INTFLAG_EMPTY1_Pos 3 /**< \brief (DAC_INTFLAG) Data Buffer 1 Empty */ -#define DAC_INTFLAG_EMPTY1 (_U_(1) << DAC_INTFLAG_EMPTY1_Pos) -#define DAC_INTFLAG_EMPTY_Pos 2 /**< \brief (DAC_INTFLAG) Data Buffer x Empty */ -#define DAC_INTFLAG_EMPTY_Msk (_U_(0x3) << DAC_INTFLAG_EMPTY_Pos) -#define DAC_INTFLAG_EMPTY(value) (DAC_INTFLAG_EMPTY_Msk & ((value) << DAC_INTFLAG_EMPTY_Pos)) -#define DAC_INTFLAG_RESRDY0_Pos 4 /**< \brief (DAC_INTFLAG) Result 0 Ready */ -#define DAC_INTFLAG_RESRDY0 (_U_(1) << DAC_INTFLAG_RESRDY0_Pos) -#define DAC_INTFLAG_RESRDY1_Pos 5 /**< \brief (DAC_INTFLAG) Result 1 Ready */ -#define DAC_INTFLAG_RESRDY1 (_U_(1) << DAC_INTFLAG_RESRDY1_Pos) -#define DAC_INTFLAG_RESRDY_Pos 4 /**< \brief (DAC_INTFLAG) Result x Ready */ -#define DAC_INTFLAG_RESRDY_Msk (_U_(0x3) << DAC_INTFLAG_RESRDY_Pos) -#define DAC_INTFLAG_RESRDY(value) (DAC_INTFLAG_RESRDY_Msk & ((value) << DAC_INTFLAG_RESRDY_Pos)) -#define DAC_INTFLAG_OVERRUN0_Pos 6 /**< \brief (DAC_INTFLAG) Result 0 Overrun */ -#define DAC_INTFLAG_OVERRUN0 (_U_(1) << DAC_INTFLAG_OVERRUN0_Pos) -#define DAC_INTFLAG_OVERRUN1_Pos 7 /**< \brief (DAC_INTFLAG) Result 1 Overrun */ -#define DAC_INTFLAG_OVERRUN1 (_U_(1) << DAC_INTFLAG_OVERRUN1_Pos) -#define DAC_INTFLAG_OVERRUN_Pos 6 /**< \brief (DAC_INTFLAG) Result x Overrun */ -#define DAC_INTFLAG_OVERRUN_Msk (_U_(0x3) << DAC_INTFLAG_OVERRUN_Pos) -#define DAC_INTFLAG_OVERRUN(value) (DAC_INTFLAG_OVERRUN_Msk & ((value) << DAC_INTFLAG_OVERRUN_Pos)) -#define DAC_INTFLAG_MASK _U_(0xFF) /**< \brief (DAC_INTFLAG) MASK Register */ - -/* -------- DAC_STATUS : (DAC Offset: 0x07) (R/ 8) Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t READY0:1; /*!< bit: 0 DAC 0 Startup Ready */ - uint8_t READY1:1; /*!< bit: 1 DAC 1 Startup Ready */ - uint8_t EOC0:1; /*!< bit: 2 DAC 0 End of Conversion */ - uint8_t EOC1:1; /*!< bit: 3 DAC 1 End of Conversion */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint8_t READY:2; /*!< bit: 0.. 1 DAC x Startup Ready */ - uint8_t EOC:2; /*!< bit: 2.. 3 DAC x End of Conversion */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } vec; /*!< Structure used for vec access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_STATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_STATUS_OFFSET 0x07 /**< \brief (DAC_STATUS offset) Status */ -#define DAC_STATUS_RESETVALUE _U_(0x00) /**< \brief (DAC_STATUS reset_value) Status */ - -#define DAC_STATUS_READY0_Pos 0 /**< \brief (DAC_STATUS) DAC 0 Startup Ready */ -#define DAC_STATUS_READY0 (_U_(1) << DAC_STATUS_READY0_Pos) -#define DAC_STATUS_READY1_Pos 1 /**< \brief (DAC_STATUS) DAC 1 Startup Ready */ -#define DAC_STATUS_READY1 (_U_(1) << DAC_STATUS_READY1_Pos) -#define DAC_STATUS_READY_Pos 0 /**< \brief (DAC_STATUS) DAC x Startup Ready */ -#define DAC_STATUS_READY_Msk (_U_(0x3) << DAC_STATUS_READY_Pos) -#define DAC_STATUS_READY(value) (DAC_STATUS_READY_Msk & ((value) << DAC_STATUS_READY_Pos)) -#define DAC_STATUS_EOC0_Pos 2 /**< \brief (DAC_STATUS) DAC 0 End of Conversion */ -#define DAC_STATUS_EOC0 (_U_(1) << DAC_STATUS_EOC0_Pos) -#define DAC_STATUS_EOC1_Pos 3 /**< \brief (DAC_STATUS) DAC 1 End of Conversion */ -#define DAC_STATUS_EOC1 (_U_(1) << DAC_STATUS_EOC1_Pos) -#define DAC_STATUS_EOC_Pos 2 /**< \brief (DAC_STATUS) DAC x End of Conversion */ -#define DAC_STATUS_EOC_Msk (_U_(0x3) << DAC_STATUS_EOC_Pos) -#define DAC_STATUS_EOC(value) (DAC_STATUS_EOC_Msk & ((value) << DAC_STATUS_EOC_Pos)) -#define DAC_STATUS_MASK _U_(0x0F) /**< \brief (DAC_STATUS) MASK Register */ - -/* -------- DAC_SYNCBUSY : (DAC Offset: 0x08) (R/ 32) Synchronization Busy -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWRST:1; /*!< bit: 0 Software Reset */ - uint32_t ENABLE:1; /*!< bit: 1 DAC Enable Status */ - uint32_t DATA0:1; /*!< bit: 2 Data DAC 0 */ - uint32_t DATA1:1; /*!< bit: 3 Data DAC 1 */ - uint32_t DATABUF0:1; /*!< bit: 4 Data Buffer DAC 0 */ - uint32_t DATABUF1:1; /*!< bit: 5 Data Buffer DAC 1 */ - uint32_t :26; /*!< bit: 6..31 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t :2; /*!< bit: 0.. 1 Reserved */ - uint32_t DATA:2; /*!< bit: 2.. 3 Data DAC x */ - uint32_t DATABUF:2; /*!< bit: 4.. 5 Data Buffer DAC x */ - uint32_t :26; /*!< bit: 6..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DAC_SYNCBUSY_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_SYNCBUSY_OFFSET 0x08 /**< \brief (DAC_SYNCBUSY offset) Synchronization Busy */ -#define DAC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (DAC_SYNCBUSY reset_value) Synchronization Busy */ - -#define DAC_SYNCBUSY_SWRST_Pos 0 /**< \brief (DAC_SYNCBUSY) Software Reset */ -#define DAC_SYNCBUSY_SWRST (_U_(0x1) << DAC_SYNCBUSY_SWRST_Pos) -#define DAC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (DAC_SYNCBUSY) DAC Enable Status */ -#define DAC_SYNCBUSY_ENABLE (_U_(0x1) << DAC_SYNCBUSY_ENABLE_Pos) -#define DAC_SYNCBUSY_DATA0_Pos 2 /**< \brief (DAC_SYNCBUSY) Data DAC 0 */ -#define DAC_SYNCBUSY_DATA0 (_U_(1) << DAC_SYNCBUSY_DATA0_Pos) -#define DAC_SYNCBUSY_DATA1_Pos 3 /**< \brief (DAC_SYNCBUSY) Data DAC 1 */ -#define DAC_SYNCBUSY_DATA1 (_U_(1) << DAC_SYNCBUSY_DATA1_Pos) -#define DAC_SYNCBUSY_DATA_Pos 2 /**< \brief (DAC_SYNCBUSY) Data DAC x */ -#define DAC_SYNCBUSY_DATA_Msk (_U_(0x3) << DAC_SYNCBUSY_DATA_Pos) -#define DAC_SYNCBUSY_DATA(value) (DAC_SYNCBUSY_DATA_Msk & ((value) << DAC_SYNCBUSY_DATA_Pos)) -#define DAC_SYNCBUSY_DATABUF0_Pos 4 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC 0 */ -#define DAC_SYNCBUSY_DATABUF0 (_U_(1) << DAC_SYNCBUSY_DATABUF0_Pos) -#define DAC_SYNCBUSY_DATABUF1_Pos 5 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC 1 */ -#define DAC_SYNCBUSY_DATABUF1 (_U_(1) << DAC_SYNCBUSY_DATABUF1_Pos) -#define DAC_SYNCBUSY_DATABUF_Pos 4 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC x */ -#define DAC_SYNCBUSY_DATABUF_Msk (_U_(0x3) << DAC_SYNCBUSY_DATABUF_Pos) -#define DAC_SYNCBUSY_DATABUF(value) (DAC_SYNCBUSY_DATABUF_Msk & ((value) << DAC_SYNCBUSY_DATABUF_Pos)) -#define DAC_SYNCBUSY_MASK _U_(0x0000003F) /**< \brief (DAC_SYNCBUSY) MASK Register */ - -/* -------- DAC_DACCTRL : (DAC Offset: 0x0C) (R/W 16) DAC n Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t LEFTADJ:1; /*!< bit: 0 Left Adjusted Data */ - uint16_t ENABLE:1; /*!< bit: 1 Enable DAC0 */ - uint16_t CCTRL:2; /*!< bit: 2.. 3 Current Control */ - uint16_t :1; /*!< bit: 4 Reserved */ - uint16_t FEXT:1; /*!< bit: 5 Standalone Filter */ - uint16_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ - uint16_t DITHER:1; /*!< bit: 7 Dithering Mode */ - uint16_t REFRESH:4; /*!< bit: 8..11 Refresh period */ - uint16_t :1; /*!< bit: 12 Reserved */ - uint16_t OSR:3; /*!< bit: 13..15 Sampling Rate */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DAC_DACCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_DACCTRL_OFFSET 0x0C /**< \brief (DAC_DACCTRL offset) DAC n Control */ -#define DAC_DACCTRL_RESETVALUE _U_(0x0000) /**< \brief (DAC_DACCTRL reset_value) DAC n Control */ - -#define DAC_DACCTRL_LEFTADJ_Pos 0 /**< \brief (DAC_DACCTRL) Left Adjusted Data */ -#define DAC_DACCTRL_LEFTADJ (_U_(0x1) << DAC_DACCTRL_LEFTADJ_Pos) -#define DAC_DACCTRL_ENABLE_Pos 1 /**< \brief (DAC_DACCTRL) Enable DAC0 */ -#define DAC_DACCTRL_ENABLE (_U_(0x1) << DAC_DACCTRL_ENABLE_Pos) -#define DAC_DACCTRL_CCTRL_Pos 2 /**< \brief (DAC_DACCTRL) Current Control */ -#define DAC_DACCTRL_CCTRL_Msk (_U_(0x3) << DAC_DACCTRL_CCTRL_Pos) -#define DAC_DACCTRL_CCTRL(value) (DAC_DACCTRL_CCTRL_Msk & ((value) << DAC_DACCTRL_CCTRL_Pos)) -#define DAC_DACCTRL_CCTRL_CC100K_Val _U_(0x0) /**< \brief (DAC_DACCTRL) GCLK_DAC ≤ 1.2MHz (100kSPS) */ -#define DAC_DACCTRL_CCTRL_CC1M_Val _U_(0x1) /**< \brief (DAC_DACCTRL) 1.2MHz < GCLK_DAC ≤ 6MHz (500kSPS) */ -#define DAC_DACCTRL_CCTRL_CC12M_Val _U_(0x2) /**< \brief (DAC_DACCTRL) 6MHz < GCLK_DAC ≤ 12MHz (1MSPS) */ -#define DAC_DACCTRL_CCTRL_CC100K (DAC_DACCTRL_CCTRL_CC100K_Val << DAC_DACCTRL_CCTRL_Pos) -#define DAC_DACCTRL_CCTRL_CC1M (DAC_DACCTRL_CCTRL_CC1M_Val << DAC_DACCTRL_CCTRL_Pos) -#define DAC_DACCTRL_CCTRL_CC12M (DAC_DACCTRL_CCTRL_CC12M_Val << DAC_DACCTRL_CCTRL_Pos) -#define DAC_DACCTRL_FEXT_Pos 5 /**< \brief (DAC_DACCTRL) Standalone Filter */ -#define DAC_DACCTRL_FEXT (_U_(0x1) << DAC_DACCTRL_FEXT_Pos) -#define DAC_DACCTRL_RUNSTDBY_Pos 6 /**< \brief (DAC_DACCTRL) Run in Standby */ -#define DAC_DACCTRL_RUNSTDBY (_U_(0x1) << DAC_DACCTRL_RUNSTDBY_Pos) -#define DAC_DACCTRL_DITHER_Pos 7 /**< \brief (DAC_DACCTRL) Dithering Mode */ -#define DAC_DACCTRL_DITHER (_U_(0x1) << DAC_DACCTRL_DITHER_Pos) -#define DAC_DACCTRL_REFRESH_Pos 8 /**< \brief (DAC_DACCTRL) Refresh period */ -#define DAC_DACCTRL_REFRESH_Msk (_U_(0xF) << DAC_DACCTRL_REFRESH_Pos) -#define DAC_DACCTRL_REFRESH(value) (DAC_DACCTRL_REFRESH_Msk & ((value) << DAC_DACCTRL_REFRESH_Pos)) -#define DAC_DACCTRL_OSR_Pos 13 /**< \brief (DAC_DACCTRL) Sampling Rate */ -#define DAC_DACCTRL_OSR_Msk (_U_(0x7) << DAC_DACCTRL_OSR_Pos) -#define DAC_DACCTRL_OSR(value) (DAC_DACCTRL_OSR_Msk & ((value) << DAC_DACCTRL_OSR_Pos)) -#define DAC_DACCTRL_MASK _U_(0xEFEF) /**< \brief (DAC_DACCTRL) MASK Register */ - -/* -------- DAC_DATA : (DAC Offset: 0x10) ( /W 16) DAC n Data -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t DATA:16; /*!< bit: 0..15 DAC0 Data */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DAC_DATA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_DATA_OFFSET 0x10 /**< \brief (DAC_DATA offset) DAC n Data */ -#define DAC_DATA_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATA reset_value) DAC n Data */ - -#define DAC_DATA_DATA_Pos 0 /**< \brief (DAC_DATA) DAC0 Data */ -#define DAC_DATA_DATA_Msk (_U_(0xFFFF) << DAC_DATA_DATA_Pos) -#define DAC_DATA_DATA(value) (DAC_DATA_DATA_Msk & ((value) << DAC_DATA_DATA_Pos)) -#define DAC_DATA_MASK _U_(0xFFFF) /**< \brief (DAC_DATA) MASK Register */ - -/* -------- DAC_DATABUF : (DAC Offset: 0x14) ( /W 16) DAC n Data Buffer -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t DATABUF:16; /*!< bit: 0..15 DAC0 Data Buffer */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DAC_DATABUF_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_DATABUF_OFFSET 0x14 /**< \brief (DAC_DATABUF offset) DAC n Data Buffer */ -#define DAC_DATABUF_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATABUF reset_value) DAC n Data Buffer */ - -#define DAC_DATABUF_DATABUF_Pos 0 /**< \brief (DAC_DATABUF) DAC0 Data Buffer */ -#define DAC_DATABUF_DATABUF_Msk (_U_(0xFFFF) << DAC_DATABUF_DATABUF_Pos) -#define DAC_DATABUF_DATABUF(value) (DAC_DATABUF_DATABUF_Msk & ((value) << DAC_DATABUF_DATABUF_Pos)) -#define DAC_DATABUF_MASK _U_(0xFFFF) /**< \brief (DAC_DATABUF) MASK Register */ - -/* -------- DAC_DBGCTRL : (DAC Offset: 0x18) (R/W 8) Debug Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DAC_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_DBGCTRL_OFFSET 0x18 /**< \brief (DAC_DBGCTRL offset) Debug Control */ -#define DAC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_DBGCTRL reset_value) Debug Control */ - -#define DAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DAC_DBGCTRL) Debug Run */ -#define DAC_DBGCTRL_DBGRUN (_U_(0x1) << DAC_DBGCTRL_DBGRUN_Pos) -#define DAC_DBGCTRL_MASK _U_(0x01) /**< \brief (DAC_DBGCTRL) MASK Register */ - -/* -------- DAC_RESULT : (DAC Offset: 0x1C) (R/ 16) Filter Result -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t RESULT:16; /*!< bit: 0..15 Filter Result */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DAC_RESULT_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DAC_RESULT_OFFSET 0x1C /**< \brief (DAC_RESULT offset) Filter Result */ -#define DAC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (DAC_RESULT reset_value) Filter Result */ - -#define DAC_RESULT_RESULT_Pos 0 /**< \brief (DAC_RESULT) Filter Result */ -#define DAC_RESULT_RESULT_Msk (_U_(0xFFFF) << DAC_RESULT_RESULT_Pos) -#define DAC_RESULT_RESULT(value) (DAC_RESULT_RESULT_Msk & ((value) << DAC_RESULT_RESULT_Pos)) -#define DAC_RESULT_MASK _U_(0xFFFF) /**< \brief (DAC_RESULT) MASK Register */ - -/** \brief DAC hardware registers */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef struct { - __IO DAC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ - __IO DAC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 (R/W 8) Control B */ - __IO DAC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 8) Event Control */ - RoReg8 Reserved1[0x1]; - __IO DAC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ - __IO DAC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ - __IO DAC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ - __I DAC_STATUS_Type STATUS; /**< \brief Offset: 0x07 (R/ 8) Status */ - __I DAC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x08 (R/ 32) Synchronization Busy */ - __IO DAC_DACCTRL_Type DACCTRL[2]; /**< \brief Offset: 0x0C (R/W 16) DAC n Control */ - __O DAC_DATA_Type DATA[2]; /**< \brief Offset: 0x10 ( /W 16) DAC n Data */ - __O DAC_DATABUF_Type DATABUF[2]; /**< \brief Offset: 0x14 ( /W 16) DAC n Data Buffer */ - __IO DAC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x18 (R/W 8) Debug Control */ - RoReg8 Reserved2[0x3]; - __I DAC_RESULT_Type RESULT[2]; /**< \brief Offset: 0x1C (R/ 16) Filter Result */ -} Dac; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -/*@}*/ - -#endif /* _SAMD51_DAC_COMPONENT_ */ +/** + * \file + * + * \brief Component description for DAC + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_DAC_COMPONENT_ +#define _SAMD51_DAC_COMPONENT_ + +/* ========================================================================== */ +/** SOFTWARE API DEFINITION FOR DAC */ +/* ========================================================================== */ +/** \addtogroup SAMD51_DAC Digital-to-Analog Converter */ +/*@{*/ + +#define DAC_U2502 +#define REV_DAC 0x100 + +/* -------- DAC_CTRLA : (DAC Offset: 0x00) (R/W 8) Control A -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t SWRST:1; /*!< bit: 0 Software Reset */ + uint8_t ENABLE:1; /*!< bit: 1 Enable DAC Controller */ + uint8_t :6; /*!< bit: 2.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_CTRLA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_CTRLA_OFFSET 0x00 /**< \brief (DAC_CTRLA offset) Control A */ +#define DAC_CTRLA_RESETVALUE _U_(0x00) /**< \brief (DAC_CTRLA reset_value) Control A */ + +#define DAC_CTRLA_SWRST_Pos 0 /**< \brief (DAC_CTRLA) Software Reset */ +#define DAC_CTRLA_SWRST (_U_(0x1) << DAC_CTRLA_SWRST_Pos) +#define DAC_CTRLA_ENABLE_Pos 1 /**< \brief (DAC_CTRLA) Enable DAC Controller */ +#define DAC_CTRLA_ENABLE (_U_(0x1) << DAC_CTRLA_ENABLE_Pos) +#define DAC_CTRLA_MASK _U_(0x03) /**< \brief (DAC_CTRLA) MASK Register */ + +/* -------- DAC_CTRLB : (DAC Offset: 0x01) (R/W 8) Control B -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DIFF:1; /*!< bit: 0 Differential mode enable */ + uint8_t REFSEL:2; /*!< bit: 1.. 2 Reference Selection for DAC0/1 */ + uint8_t :5; /*!< bit: 3.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_CTRLB_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_CTRLB_OFFSET 0x01 /**< \brief (DAC_CTRLB offset) Control B */ +#define DAC_CTRLB_RESETVALUE _U_(0x02) /**< \brief (DAC_CTRLB reset_value) Control B */ + +#define DAC_CTRLB_DIFF_Pos 0 /**< \brief (DAC_CTRLB) Differential mode enable */ +#define DAC_CTRLB_DIFF (_U_(0x1) << DAC_CTRLB_DIFF_Pos) +#define DAC_CTRLB_REFSEL_Pos 1 /**< \brief (DAC_CTRLB) Reference Selection for DAC0/1 */ +#define DAC_CTRLB_REFSEL_Msk (_U_(0x3) << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL(value) (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos)) +#define DAC_CTRLB_REFSEL_VREFPU_Val _U_(0x0) /**< \brief (DAC_CTRLB) External reference unbuffered */ +#define DAC_CTRLB_REFSEL_VDDANA_Val _U_(0x1) /**< \brief (DAC_CTRLB) Analog supply */ +#define DAC_CTRLB_REFSEL_VREFPB_Val _U_(0x2) /**< \brief (DAC_CTRLB) External reference buffered */ +#define DAC_CTRLB_REFSEL_INTREF_Val _U_(0x3) /**< \brief (DAC_CTRLB) Internal bandgap reference */ +#define DAC_CTRLB_REFSEL_VREFPU (DAC_CTRLB_REFSEL_VREFPU_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_VDDANA (DAC_CTRLB_REFSEL_VDDANA_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_VREFPB (DAC_CTRLB_REFSEL_VREFPB_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_REFSEL_INTREF (DAC_CTRLB_REFSEL_INTREF_Val << DAC_CTRLB_REFSEL_Pos) +#define DAC_CTRLB_MASK _U_(0x07) /**< \brief (DAC_CTRLB) MASK Register */ + +/* -------- DAC_EVCTRL : (DAC Offset: 0x02) (R/W 8) Event Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t STARTEI0:1; /*!< bit: 0 Start Conversion Event Input DAC 0 */ + uint8_t STARTEI1:1; /*!< bit: 1 Start Conversion Event Input DAC 1 */ + uint8_t EMPTYEO0:1; /*!< bit: 2 Data Buffer Empty Event Output DAC 0 */ + uint8_t EMPTYEO1:1; /*!< bit: 3 Data Buffer Empty Event Output DAC 1 */ + uint8_t INVEI0:1; /*!< bit: 4 Enable Invertion of DAC 0 input event */ + uint8_t INVEI1:1; /*!< bit: 5 Enable Invertion of DAC 1 input event */ + uint8_t RESRDYEO0:1; /*!< bit: 6 Result Ready Event Output 0 */ + uint8_t RESRDYEO1:1; /*!< bit: 7 Result Ready Event Output 1 */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t STARTEI:2; /*!< bit: 0.. 1 Start Conversion Event Input DAC x */ + uint8_t EMPTYEO:2; /*!< bit: 2.. 3 Data Buffer Empty Event Output DAC x */ + uint8_t INVEI:2; /*!< bit: 4.. 5 Enable Invertion of DAC x input event */ + uint8_t RESRDYEO:2; /*!< bit: 6.. 7 Result Ready Event Output x */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_EVCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_EVCTRL_OFFSET 0x02 /**< \brief (DAC_EVCTRL offset) Event Control */ +#define DAC_EVCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_EVCTRL reset_value) Event Control */ + +#define DAC_EVCTRL_STARTEI0_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC 0 */ +#define DAC_EVCTRL_STARTEI0 (_U_(1) << DAC_EVCTRL_STARTEI0_Pos) +#define DAC_EVCTRL_STARTEI1_Pos 1 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC 1 */ +#define DAC_EVCTRL_STARTEI1 (_U_(1) << DAC_EVCTRL_STARTEI1_Pos) +#define DAC_EVCTRL_STARTEI_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input DAC x */ +#define DAC_EVCTRL_STARTEI_Msk (_U_(0x3) << DAC_EVCTRL_STARTEI_Pos) +#define DAC_EVCTRL_STARTEI(value) (DAC_EVCTRL_STARTEI_Msk & ((value) << DAC_EVCTRL_STARTEI_Pos)) +#define DAC_EVCTRL_EMPTYEO0_Pos 2 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC 0 */ +#define DAC_EVCTRL_EMPTYEO0 (_U_(1) << DAC_EVCTRL_EMPTYEO0_Pos) +#define DAC_EVCTRL_EMPTYEO1_Pos 3 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC 1 */ +#define DAC_EVCTRL_EMPTYEO1 (_U_(1) << DAC_EVCTRL_EMPTYEO1_Pos) +#define DAC_EVCTRL_EMPTYEO_Pos 2 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output DAC x */ +#define DAC_EVCTRL_EMPTYEO_Msk (_U_(0x3) << DAC_EVCTRL_EMPTYEO_Pos) +#define DAC_EVCTRL_EMPTYEO(value) (DAC_EVCTRL_EMPTYEO_Msk & ((value) << DAC_EVCTRL_EMPTYEO_Pos)) +#define DAC_EVCTRL_INVEI0_Pos 4 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC 0 input event */ +#define DAC_EVCTRL_INVEI0 (_U_(1) << DAC_EVCTRL_INVEI0_Pos) +#define DAC_EVCTRL_INVEI1_Pos 5 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC 1 input event */ +#define DAC_EVCTRL_INVEI1 (_U_(1) << DAC_EVCTRL_INVEI1_Pos) +#define DAC_EVCTRL_INVEI_Pos 4 /**< \brief (DAC_EVCTRL) Enable Invertion of DAC x input event */ +#define DAC_EVCTRL_INVEI_Msk (_U_(0x3) << DAC_EVCTRL_INVEI_Pos) +#define DAC_EVCTRL_INVEI(value) (DAC_EVCTRL_INVEI_Msk & ((value) << DAC_EVCTRL_INVEI_Pos)) +#define DAC_EVCTRL_RESRDYEO0_Pos 6 /**< \brief (DAC_EVCTRL) Result Ready Event Output 0 */ +#define DAC_EVCTRL_RESRDYEO0 (_U_(1) << DAC_EVCTRL_RESRDYEO0_Pos) +#define DAC_EVCTRL_RESRDYEO1_Pos 7 /**< \brief (DAC_EVCTRL) Result Ready Event Output 1 */ +#define DAC_EVCTRL_RESRDYEO1 (_U_(1) << DAC_EVCTRL_RESRDYEO1_Pos) +#define DAC_EVCTRL_RESRDYEO_Pos 6 /**< \brief (DAC_EVCTRL) Result Ready Event Output x */ +#define DAC_EVCTRL_RESRDYEO_Msk (_U_(0x3) << DAC_EVCTRL_RESRDYEO_Pos) +#define DAC_EVCTRL_RESRDYEO(value) (DAC_EVCTRL_RESRDYEO_Msk & ((value) << DAC_EVCTRL_RESRDYEO_Pos)) +#define DAC_EVCTRL_MASK _U_(0xFF) /**< \brief (DAC_EVCTRL) MASK Register */ + +/* -------- DAC_INTENCLR : (DAC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t UNDERRUN0:1; /*!< bit: 0 Underrun 0 Interrupt Enable */ + uint8_t UNDERRUN1:1; /*!< bit: 1 Underrun 1 Interrupt Enable */ + uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty Interrupt Enable */ + uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty Interrupt Enable */ + uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready Interrupt Enable */ + uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready Interrupt Enable */ + uint8_t OVERRUN0:1; /*!< bit: 6 Overrun 0 Interrupt Enable */ + uint8_t OVERRUN1:1; /*!< bit: 7 Overrun 1 Interrupt Enable */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Underrun x Interrupt Enable */ + uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty Interrupt Enable */ + uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready Interrupt Enable */ + uint8_t OVERRUN:2; /*!< bit: 6.. 7 Overrun x Interrupt Enable */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTENCLR_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTENCLR_OFFSET 0x04 /**< \brief (DAC_INTENCLR offset) Interrupt Enable Clear */ +#define DAC_INTENCLR_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENCLR reset_value) Interrupt Enable Clear */ + +#define DAC_INTENCLR_UNDERRUN0_Pos 0 /**< \brief (DAC_INTENCLR) Underrun 0 Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN0 (_U_(1) << DAC_INTENCLR_UNDERRUN0_Pos) +#define DAC_INTENCLR_UNDERRUN1_Pos 1 /**< \brief (DAC_INTENCLR) Underrun 1 Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN1 (_U_(1) << DAC_INTENCLR_UNDERRUN1_Pos) +#define DAC_INTENCLR_UNDERRUN_Pos 0 /**< \brief (DAC_INTENCLR) Underrun x Interrupt Enable */ +#define DAC_INTENCLR_UNDERRUN_Msk (_U_(0x3) << DAC_INTENCLR_UNDERRUN_Pos) +#define DAC_INTENCLR_UNDERRUN(value) (DAC_INTENCLR_UNDERRUN_Msk & ((value) << DAC_INTENCLR_UNDERRUN_Pos)) +#define DAC_INTENCLR_EMPTY0_Pos 2 /**< \brief (DAC_INTENCLR) Data Buffer 0 Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY0 (_U_(1) << DAC_INTENCLR_EMPTY0_Pos) +#define DAC_INTENCLR_EMPTY1_Pos 3 /**< \brief (DAC_INTENCLR) Data Buffer 1 Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY1 (_U_(1) << DAC_INTENCLR_EMPTY1_Pos) +#define DAC_INTENCLR_EMPTY_Pos 2 /**< \brief (DAC_INTENCLR) Data Buffer x Empty Interrupt Enable */ +#define DAC_INTENCLR_EMPTY_Msk (_U_(0x3) << DAC_INTENCLR_EMPTY_Pos) +#define DAC_INTENCLR_EMPTY(value) (DAC_INTENCLR_EMPTY_Msk & ((value) << DAC_INTENCLR_EMPTY_Pos)) +#define DAC_INTENCLR_RESRDY0_Pos 4 /**< \brief (DAC_INTENCLR) Result 0 Ready Interrupt Enable */ +#define DAC_INTENCLR_RESRDY0 (_U_(1) << DAC_INTENCLR_RESRDY0_Pos) +#define DAC_INTENCLR_RESRDY1_Pos 5 /**< \brief (DAC_INTENCLR) Result 1 Ready Interrupt Enable */ +#define DAC_INTENCLR_RESRDY1 (_U_(1) << DAC_INTENCLR_RESRDY1_Pos) +#define DAC_INTENCLR_RESRDY_Pos 4 /**< \brief (DAC_INTENCLR) Result x Ready Interrupt Enable */ +#define DAC_INTENCLR_RESRDY_Msk (_U_(0x3) << DAC_INTENCLR_RESRDY_Pos) +#define DAC_INTENCLR_RESRDY(value) (DAC_INTENCLR_RESRDY_Msk & ((value) << DAC_INTENCLR_RESRDY_Pos)) +#define DAC_INTENCLR_OVERRUN0_Pos 6 /**< \brief (DAC_INTENCLR) Overrun 0 Interrupt Enable */ +#define DAC_INTENCLR_OVERRUN0 (_U_(1) << DAC_INTENCLR_OVERRUN0_Pos) +#define DAC_INTENCLR_OVERRUN1_Pos 7 /**< \brief (DAC_INTENCLR) Overrun 1 Interrupt Enable */ +#define DAC_INTENCLR_OVERRUN1 (_U_(1) << DAC_INTENCLR_OVERRUN1_Pos) +#define DAC_INTENCLR_OVERRUN_Pos 6 /**< \brief (DAC_INTENCLR) Overrun x Interrupt Enable */ +#define DAC_INTENCLR_OVERRUN_Msk (_U_(0x3) << DAC_INTENCLR_OVERRUN_Pos) +#define DAC_INTENCLR_OVERRUN(value) (DAC_INTENCLR_OVERRUN_Msk & ((value) << DAC_INTENCLR_OVERRUN_Pos)) +#define DAC_INTENCLR_MASK _U_(0xFF) /**< \brief (DAC_INTENCLR) MASK Register */ + +/* -------- DAC_INTENSET : (DAC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t UNDERRUN0:1; /*!< bit: 0 Underrun 0 Interrupt Enable */ + uint8_t UNDERRUN1:1; /*!< bit: 1 Underrun 1 Interrupt Enable */ + uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty Interrupt Enable */ + uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty Interrupt Enable */ + uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready Interrupt Enable */ + uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready Interrupt Enable */ + uint8_t OVERRUN0:1; /*!< bit: 6 Overrun 0 Interrupt Enable */ + uint8_t OVERRUN1:1; /*!< bit: 7 Overrun 1 Interrupt Enable */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Underrun x Interrupt Enable */ + uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty Interrupt Enable */ + uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready Interrupt Enable */ + uint8_t OVERRUN:2; /*!< bit: 6.. 7 Overrun x Interrupt Enable */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTENSET_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTENSET_OFFSET 0x05 /**< \brief (DAC_INTENSET offset) Interrupt Enable Set */ +#define DAC_INTENSET_RESETVALUE _U_(0x00) /**< \brief (DAC_INTENSET reset_value) Interrupt Enable Set */ + +#define DAC_INTENSET_UNDERRUN0_Pos 0 /**< \brief (DAC_INTENSET) Underrun 0 Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN0 (_U_(1) << DAC_INTENSET_UNDERRUN0_Pos) +#define DAC_INTENSET_UNDERRUN1_Pos 1 /**< \brief (DAC_INTENSET) Underrun 1 Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN1 (_U_(1) << DAC_INTENSET_UNDERRUN1_Pos) +#define DAC_INTENSET_UNDERRUN_Pos 0 /**< \brief (DAC_INTENSET) Underrun x Interrupt Enable */ +#define DAC_INTENSET_UNDERRUN_Msk (_U_(0x3) << DAC_INTENSET_UNDERRUN_Pos) +#define DAC_INTENSET_UNDERRUN(value) (DAC_INTENSET_UNDERRUN_Msk & ((value) << DAC_INTENSET_UNDERRUN_Pos)) +#define DAC_INTENSET_EMPTY0_Pos 2 /**< \brief (DAC_INTENSET) Data Buffer 0 Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY0 (_U_(1) << DAC_INTENSET_EMPTY0_Pos) +#define DAC_INTENSET_EMPTY1_Pos 3 /**< \brief (DAC_INTENSET) Data Buffer 1 Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY1 (_U_(1) << DAC_INTENSET_EMPTY1_Pos) +#define DAC_INTENSET_EMPTY_Pos 2 /**< \brief (DAC_INTENSET) Data Buffer x Empty Interrupt Enable */ +#define DAC_INTENSET_EMPTY_Msk (_U_(0x3) << DAC_INTENSET_EMPTY_Pos) +#define DAC_INTENSET_EMPTY(value) (DAC_INTENSET_EMPTY_Msk & ((value) << DAC_INTENSET_EMPTY_Pos)) +#define DAC_INTENSET_RESRDY0_Pos 4 /**< \brief (DAC_INTENSET) Result 0 Ready Interrupt Enable */ +#define DAC_INTENSET_RESRDY0 (_U_(1) << DAC_INTENSET_RESRDY0_Pos) +#define DAC_INTENSET_RESRDY1_Pos 5 /**< \brief (DAC_INTENSET) Result 1 Ready Interrupt Enable */ +#define DAC_INTENSET_RESRDY1 (_U_(1) << DAC_INTENSET_RESRDY1_Pos) +#define DAC_INTENSET_RESRDY_Pos 4 /**< \brief (DAC_INTENSET) Result x Ready Interrupt Enable */ +#define DAC_INTENSET_RESRDY_Msk (_U_(0x3) << DAC_INTENSET_RESRDY_Pos) +#define DAC_INTENSET_RESRDY(value) (DAC_INTENSET_RESRDY_Msk & ((value) << DAC_INTENSET_RESRDY_Pos)) +#define DAC_INTENSET_OVERRUN0_Pos 6 /**< \brief (DAC_INTENSET) Overrun 0 Interrupt Enable */ +#define DAC_INTENSET_OVERRUN0 (_U_(1) << DAC_INTENSET_OVERRUN0_Pos) +#define DAC_INTENSET_OVERRUN1_Pos 7 /**< \brief (DAC_INTENSET) Overrun 1 Interrupt Enable */ +#define DAC_INTENSET_OVERRUN1 (_U_(1) << DAC_INTENSET_OVERRUN1_Pos) +#define DAC_INTENSET_OVERRUN_Pos 6 /**< \brief (DAC_INTENSET) Overrun x Interrupt Enable */ +#define DAC_INTENSET_OVERRUN_Msk (_U_(0x3) << DAC_INTENSET_OVERRUN_Pos) +#define DAC_INTENSET_OVERRUN(value) (DAC_INTENSET_OVERRUN_Msk & ((value) << DAC_INTENSET_OVERRUN_Pos)) +#define DAC_INTENSET_MASK _U_(0xFF) /**< \brief (DAC_INTENSET) MASK Register */ + +/* -------- DAC_INTFLAG : (DAC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { // __I to avoid read-modify-write on write-to-clear register + struct { + __I uint8_t UNDERRUN0:1; /*!< bit: 0 Result 0 Underrun */ + __I uint8_t UNDERRUN1:1; /*!< bit: 1 Result 1 Underrun */ + __I uint8_t EMPTY0:1; /*!< bit: 2 Data Buffer 0 Empty */ + __I uint8_t EMPTY1:1; /*!< bit: 3 Data Buffer 1 Empty */ + __I uint8_t RESRDY0:1; /*!< bit: 4 Result 0 Ready */ + __I uint8_t RESRDY1:1; /*!< bit: 5 Result 1 Ready */ + __I uint8_t OVERRUN0:1; /*!< bit: 6 Result 0 Overrun */ + __I uint8_t OVERRUN1:1; /*!< bit: 7 Result 1 Overrun */ + } bit; /*!< Structure used for bit access */ + struct { + __I uint8_t UNDERRUN:2; /*!< bit: 0.. 1 Result x Underrun */ + __I uint8_t EMPTY:2; /*!< bit: 2.. 3 Data Buffer x Empty */ + __I uint8_t RESRDY:2; /*!< bit: 4.. 5 Result x Ready */ + __I uint8_t OVERRUN:2; /*!< bit: 6.. 7 Result x Overrun */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_INTFLAG_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_INTFLAG_OFFSET 0x06 /**< \brief (DAC_INTFLAG offset) Interrupt Flag Status and Clear */ +#define DAC_INTFLAG_RESETVALUE _U_(0x00) /**< \brief (DAC_INTFLAG reset_value) Interrupt Flag Status and Clear */ + +#define DAC_INTFLAG_UNDERRUN0_Pos 0 /**< \brief (DAC_INTFLAG) Result 0 Underrun */ +#define DAC_INTFLAG_UNDERRUN0 (_U_(1) << DAC_INTFLAG_UNDERRUN0_Pos) +#define DAC_INTFLAG_UNDERRUN1_Pos 1 /**< \brief (DAC_INTFLAG) Result 1 Underrun */ +#define DAC_INTFLAG_UNDERRUN1 (_U_(1) << DAC_INTFLAG_UNDERRUN1_Pos) +#define DAC_INTFLAG_UNDERRUN_Pos 0 /**< \brief (DAC_INTFLAG) Result x Underrun */ +#define DAC_INTFLAG_UNDERRUN_Msk (_U_(0x3) << DAC_INTFLAG_UNDERRUN_Pos) +#define DAC_INTFLAG_UNDERRUN(value) (DAC_INTFLAG_UNDERRUN_Msk & ((value) << DAC_INTFLAG_UNDERRUN_Pos)) +#define DAC_INTFLAG_EMPTY0_Pos 2 /**< \brief (DAC_INTFLAG) Data Buffer 0 Empty */ +#define DAC_INTFLAG_EMPTY0 (_U_(1) << DAC_INTFLAG_EMPTY0_Pos) +#define DAC_INTFLAG_EMPTY1_Pos 3 /**< \brief (DAC_INTFLAG) Data Buffer 1 Empty */ +#define DAC_INTFLAG_EMPTY1 (_U_(1) << DAC_INTFLAG_EMPTY1_Pos) +#define DAC_INTFLAG_EMPTY_Pos 2 /**< \brief (DAC_INTFLAG) Data Buffer x Empty */ +#define DAC_INTFLAG_EMPTY_Msk (_U_(0x3) << DAC_INTFLAG_EMPTY_Pos) +#define DAC_INTFLAG_EMPTY(value) (DAC_INTFLAG_EMPTY_Msk & ((value) << DAC_INTFLAG_EMPTY_Pos)) +#define DAC_INTFLAG_RESRDY0_Pos 4 /**< \brief (DAC_INTFLAG) Result 0 Ready */ +#define DAC_INTFLAG_RESRDY0 (_U_(1) << DAC_INTFLAG_RESRDY0_Pos) +#define DAC_INTFLAG_RESRDY1_Pos 5 /**< \brief (DAC_INTFLAG) Result 1 Ready */ +#define DAC_INTFLAG_RESRDY1 (_U_(1) << DAC_INTFLAG_RESRDY1_Pos) +#define DAC_INTFLAG_RESRDY_Pos 4 /**< \brief (DAC_INTFLAG) Result x Ready */ +#define DAC_INTFLAG_RESRDY_Msk (_U_(0x3) << DAC_INTFLAG_RESRDY_Pos) +#define DAC_INTFLAG_RESRDY(value) (DAC_INTFLAG_RESRDY_Msk & ((value) << DAC_INTFLAG_RESRDY_Pos)) +#define DAC_INTFLAG_OVERRUN0_Pos 6 /**< \brief (DAC_INTFLAG) Result 0 Overrun */ +#define DAC_INTFLAG_OVERRUN0 (_U_(1) << DAC_INTFLAG_OVERRUN0_Pos) +#define DAC_INTFLAG_OVERRUN1_Pos 7 /**< \brief (DAC_INTFLAG) Result 1 Overrun */ +#define DAC_INTFLAG_OVERRUN1 (_U_(1) << DAC_INTFLAG_OVERRUN1_Pos) +#define DAC_INTFLAG_OVERRUN_Pos 6 /**< \brief (DAC_INTFLAG) Result x Overrun */ +#define DAC_INTFLAG_OVERRUN_Msk (_U_(0x3) << DAC_INTFLAG_OVERRUN_Pos) +#define DAC_INTFLAG_OVERRUN(value) (DAC_INTFLAG_OVERRUN_Msk & ((value) << DAC_INTFLAG_OVERRUN_Pos)) +#define DAC_INTFLAG_MASK _U_(0xFF) /**< \brief (DAC_INTFLAG) MASK Register */ + +/* -------- DAC_STATUS : (DAC Offset: 0x07) (R/ 8) Status -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t READY0:1; /*!< bit: 0 DAC 0 Startup Ready */ + uint8_t READY1:1; /*!< bit: 1 DAC 1 Startup Ready */ + uint8_t EOC0:1; /*!< bit: 2 DAC 0 End of Conversion */ + uint8_t EOC1:1; /*!< bit: 3 DAC 1 End of Conversion */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint8_t READY:2; /*!< bit: 0.. 1 DAC x Startup Ready */ + uint8_t EOC:2; /*!< bit: 2.. 3 DAC x End of Conversion */ + uint8_t :4; /*!< bit: 4.. 7 Reserved */ + } vec; /*!< Structure used for vec access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_STATUS_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_STATUS_OFFSET 0x07 /**< \brief (DAC_STATUS offset) Status */ +#define DAC_STATUS_RESETVALUE _U_(0x00) /**< \brief (DAC_STATUS reset_value) Status */ + +#define DAC_STATUS_READY0_Pos 0 /**< \brief (DAC_STATUS) DAC 0 Startup Ready */ +#define DAC_STATUS_READY0 (_U_(1) << DAC_STATUS_READY0_Pos) +#define DAC_STATUS_READY1_Pos 1 /**< \brief (DAC_STATUS) DAC 1 Startup Ready */ +#define DAC_STATUS_READY1 (_U_(1) << DAC_STATUS_READY1_Pos) +#define DAC_STATUS_READY_Pos 0 /**< \brief (DAC_STATUS) DAC x Startup Ready */ +#define DAC_STATUS_READY_Msk (_U_(0x3) << DAC_STATUS_READY_Pos) +#define DAC_STATUS_READY(value) (DAC_STATUS_READY_Msk & ((value) << DAC_STATUS_READY_Pos)) +#define DAC_STATUS_EOC0_Pos 2 /**< \brief (DAC_STATUS) DAC 0 End of Conversion */ +#define DAC_STATUS_EOC0 (_U_(1) << DAC_STATUS_EOC0_Pos) +#define DAC_STATUS_EOC1_Pos 3 /**< \brief (DAC_STATUS) DAC 1 End of Conversion */ +#define DAC_STATUS_EOC1 (_U_(1) << DAC_STATUS_EOC1_Pos) +#define DAC_STATUS_EOC_Pos 2 /**< \brief (DAC_STATUS) DAC x End of Conversion */ +#define DAC_STATUS_EOC_Msk (_U_(0x3) << DAC_STATUS_EOC_Pos) +#define DAC_STATUS_EOC(value) (DAC_STATUS_EOC_Msk & ((value) << DAC_STATUS_EOC_Pos)) +#define DAC_STATUS_MASK _U_(0x0F) /**< \brief (DAC_STATUS) MASK Register */ + +/* -------- DAC_SYNCBUSY : (DAC Offset: 0x08) (R/ 32) Synchronization Busy -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint32_t SWRST:1; /*!< bit: 0 Software Reset */ + uint32_t ENABLE:1; /*!< bit: 1 DAC Enable Status */ + uint32_t DATA0:1; /*!< bit: 2 Data DAC 0 */ + uint32_t DATA1:1; /*!< bit: 3 Data DAC 1 */ + uint32_t DATABUF0:1; /*!< bit: 4 Data Buffer DAC 0 */ + uint32_t DATABUF1:1; /*!< bit: 5 Data Buffer DAC 1 */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } bit; /*!< Structure used for bit access */ + struct { + uint32_t :2; /*!< bit: 0.. 1 Reserved */ + uint32_t DATA:2; /*!< bit: 2.. 3 Data DAC x */ + uint32_t DATABUF:2; /*!< bit: 4.. 5 Data Buffer DAC x */ + uint32_t :26; /*!< bit: 6..31 Reserved */ + } vec; /*!< Structure used for vec access */ + uint32_t reg; /*!< Type used for register access */ +} DAC_SYNCBUSY_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_SYNCBUSY_OFFSET 0x08 /**< \brief (DAC_SYNCBUSY offset) Synchronization Busy */ +#define DAC_SYNCBUSY_RESETVALUE _U_(0x00000000) /**< \brief (DAC_SYNCBUSY reset_value) Synchronization Busy */ + +#define DAC_SYNCBUSY_SWRST_Pos 0 /**< \brief (DAC_SYNCBUSY) Software Reset */ +#define DAC_SYNCBUSY_SWRST (_U_(0x1) << DAC_SYNCBUSY_SWRST_Pos) +#define DAC_SYNCBUSY_ENABLE_Pos 1 /**< \brief (DAC_SYNCBUSY) DAC Enable Status */ +#define DAC_SYNCBUSY_ENABLE (_U_(0x1) << DAC_SYNCBUSY_ENABLE_Pos) +#define DAC_SYNCBUSY_DATA0_Pos 2 /**< \brief (DAC_SYNCBUSY) Data DAC 0 */ +#define DAC_SYNCBUSY_DATA0 (_U_(1) << DAC_SYNCBUSY_DATA0_Pos) +#define DAC_SYNCBUSY_DATA1_Pos 3 /**< \brief (DAC_SYNCBUSY) Data DAC 1 */ +#define DAC_SYNCBUSY_DATA1 (_U_(1) << DAC_SYNCBUSY_DATA1_Pos) +#define DAC_SYNCBUSY_DATA_Pos 2 /**< \brief (DAC_SYNCBUSY) Data DAC x */ +#define DAC_SYNCBUSY_DATA_Msk (_U_(0x3) << DAC_SYNCBUSY_DATA_Pos) +#define DAC_SYNCBUSY_DATA(value) (DAC_SYNCBUSY_DATA_Msk & ((value) << DAC_SYNCBUSY_DATA_Pos)) +#define DAC_SYNCBUSY_DATABUF0_Pos 4 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC 0 */ +#define DAC_SYNCBUSY_DATABUF0 (_U_(1) << DAC_SYNCBUSY_DATABUF0_Pos) +#define DAC_SYNCBUSY_DATABUF1_Pos 5 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC 1 */ +#define DAC_SYNCBUSY_DATABUF1 (_U_(1) << DAC_SYNCBUSY_DATABUF1_Pos) +#define DAC_SYNCBUSY_DATABUF_Pos 4 /**< \brief (DAC_SYNCBUSY) Data Buffer DAC x */ +#define DAC_SYNCBUSY_DATABUF_Msk (_U_(0x3) << DAC_SYNCBUSY_DATABUF_Pos) +#define DAC_SYNCBUSY_DATABUF(value) (DAC_SYNCBUSY_DATABUF_Msk & ((value) << DAC_SYNCBUSY_DATABUF_Pos)) +#define DAC_SYNCBUSY_MASK _U_(0x0000003F) /**< \brief (DAC_SYNCBUSY) MASK Register */ + +/* -------- DAC_DACCTRL : (DAC Offset: 0x0C) (R/W 16) DAC n Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t LEFTADJ:1; /*!< bit: 0 Left Adjusted Data */ + uint16_t ENABLE:1; /*!< bit: 1 Enable DAC0 */ + uint16_t CCTRL:2; /*!< bit: 2.. 3 Current Control */ + uint16_t :1; /*!< bit: 4 Reserved */ + uint16_t FEXT:1; /*!< bit: 5 Standalone Filter */ + uint16_t RUNSTDBY:1; /*!< bit: 6 Run in Standby */ + uint16_t DITHER:1; /*!< bit: 7 Dithering Mode */ + uint16_t REFRESH:4; /*!< bit: 8..11 Refresh period */ + uint16_t :1; /*!< bit: 12 Reserved */ + uint16_t OSR:3; /*!< bit: 13..15 Sampling Rate */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DACCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DACCTRL_OFFSET 0x0C /**< \brief (DAC_DACCTRL offset) DAC n Control */ +#define DAC_DACCTRL_RESETVALUE _U_(0x0000) /**< \brief (DAC_DACCTRL reset_value) DAC n Control */ + +#define DAC_DACCTRL_LEFTADJ_Pos 0 /**< \brief (DAC_DACCTRL) Left Adjusted Data */ +#define DAC_DACCTRL_LEFTADJ (_U_(0x1) << DAC_DACCTRL_LEFTADJ_Pos) +#define DAC_DACCTRL_ENABLE_Pos 1 /**< \brief (DAC_DACCTRL) Enable DAC0 */ +#define DAC_DACCTRL_ENABLE (_U_(0x1) << DAC_DACCTRL_ENABLE_Pos) +#define DAC_DACCTRL_CCTRL_Pos 2 /**< \brief (DAC_DACCTRL) Current Control */ +#define DAC_DACCTRL_CCTRL_Msk (_U_(0x3) << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_CCTRL(value) (DAC_DACCTRL_CCTRL_Msk & ((value) << DAC_DACCTRL_CCTRL_Pos)) +#define DAC_DACCTRL_CCTRL_CC100K_Val _U_(0x0) /**< \brief (DAC_DACCTRL) GCLK_DAC ≤ 1.2MHz (100kSPS) */ +#define DAC_DACCTRL_CCTRL_CC1M_Val _U_(0x1) /**< \brief (DAC_DACCTRL) 1.2MHz < GCLK_DAC ≤ 6MHz (500kSPS) */ +#define DAC_DACCTRL_CCTRL_CC12M_Val _U_(0x2) /**< \brief (DAC_DACCTRL) 6MHz < GCLK_DAC ≤ 12MHz (1MSPS) */ +#define DAC_DACCTRL_CCTRL_CC100K (DAC_DACCTRL_CCTRL_CC100K_Val << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_CCTRL_CC1M (DAC_DACCTRL_CCTRL_CC1M_Val << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_CCTRL_CC12M (DAC_DACCTRL_CCTRL_CC12M_Val << DAC_DACCTRL_CCTRL_Pos) +#define DAC_DACCTRL_FEXT_Pos 5 /**< \brief (DAC_DACCTRL) Standalone Filter */ +#define DAC_DACCTRL_FEXT (_U_(0x1) << DAC_DACCTRL_FEXT_Pos) +#define DAC_DACCTRL_RUNSTDBY_Pos 6 /**< \brief (DAC_DACCTRL) Run in Standby */ +#define DAC_DACCTRL_RUNSTDBY (_U_(0x1) << DAC_DACCTRL_RUNSTDBY_Pos) +#define DAC_DACCTRL_DITHER_Pos 7 /**< \brief (DAC_DACCTRL) Dithering Mode */ +#define DAC_DACCTRL_DITHER (_U_(0x1) << DAC_DACCTRL_DITHER_Pos) +#define DAC_DACCTRL_REFRESH_Pos 8 /**< \brief (DAC_DACCTRL) Refresh period */ +#define DAC_DACCTRL_REFRESH_Msk (_U_(0xF) << DAC_DACCTRL_REFRESH_Pos) +#define DAC_DACCTRL_REFRESH(value) (DAC_DACCTRL_REFRESH_Msk & ((value) << DAC_DACCTRL_REFRESH_Pos)) +#define DAC_DACCTRL_OSR_Pos 13 /**< \brief (DAC_DACCTRL) Sampling Rate */ +#define DAC_DACCTRL_OSR_Msk (_U_(0x7) << DAC_DACCTRL_OSR_Pos) +#define DAC_DACCTRL_OSR(value) (DAC_DACCTRL_OSR_Msk & ((value) << DAC_DACCTRL_OSR_Pos)) +#define DAC_DACCTRL_MASK _U_(0xEFEF) /**< \brief (DAC_DACCTRL) MASK Register */ + +/* -------- DAC_DATA : (DAC Offset: 0x10) ( /W 16) DAC n Data -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DATA:16; /*!< bit: 0..15 DAC0 Data */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DATA_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DATA_OFFSET 0x10 /**< \brief (DAC_DATA offset) DAC n Data */ +#define DAC_DATA_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATA reset_value) DAC n Data */ + +#define DAC_DATA_DATA_Pos 0 /**< \brief (DAC_DATA) DAC0 Data */ +#define DAC_DATA_DATA_Msk (_U_(0xFFFF) << DAC_DATA_DATA_Pos) +#define DAC_DATA_DATA(value) (DAC_DATA_DATA_Msk & ((value) << DAC_DATA_DATA_Pos)) +#define DAC_DATA_MASK _U_(0xFFFF) /**< \brief (DAC_DATA) MASK Register */ + +/* -------- DAC_DATABUF : (DAC Offset: 0x14) ( /W 16) DAC n Data Buffer -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t DATABUF:16; /*!< bit: 0..15 DAC0 Data Buffer */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_DATABUF_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DATABUF_OFFSET 0x14 /**< \brief (DAC_DATABUF offset) DAC n Data Buffer */ +#define DAC_DATABUF_RESETVALUE _U_(0x0000) /**< \brief (DAC_DATABUF reset_value) DAC n Data Buffer */ + +#define DAC_DATABUF_DATABUF_Pos 0 /**< \brief (DAC_DATABUF) DAC0 Data Buffer */ +#define DAC_DATABUF_DATABUF_Msk (_U_(0xFFFF) << DAC_DATABUF_DATABUF_Pos) +#define DAC_DATABUF_DATABUF(value) (DAC_DATABUF_DATABUF_Msk & ((value) << DAC_DATABUF_DATABUF_Pos)) +#define DAC_DATABUF_MASK _U_(0xFFFF) /**< \brief (DAC_DATABUF) MASK Register */ + +/* -------- DAC_DBGCTRL : (DAC Offset: 0x18) (R/W 8) Debug Control -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ + uint8_t :7; /*!< bit: 1.. 7 Reserved */ + } bit; /*!< Structure used for bit access */ + uint8_t reg; /*!< Type used for register access */ +} DAC_DBGCTRL_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_DBGCTRL_OFFSET 0x18 /**< \brief (DAC_DBGCTRL offset) Debug Control */ +#define DAC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (DAC_DBGCTRL reset_value) Debug Control */ + +#define DAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DAC_DBGCTRL) Debug Run */ +#define DAC_DBGCTRL_DBGRUN (_U_(0x1) << DAC_DBGCTRL_DBGRUN_Pos) +#define DAC_DBGCTRL_MASK _U_(0x01) /**< \brief (DAC_DBGCTRL) MASK Register */ + +/* -------- DAC_RESULT : (DAC Offset: 0x1C) (R/ 16) Filter Result -------- */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef union { + struct { + uint16_t RESULT:16; /*!< bit: 0..15 Filter Result */ + } bit; /*!< Structure used for bit access */ + uint16_t reg; /*!< Type used for register access */ +} DAC_RESULT_Type; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +#define DAC_RESULT_OFFSET 0x1C /**< \brief (DAC_RESULT offset) Filter Result */ +#define DAC_RESULT_RESETVALUE _U_(0x0000) /**< \brief (DAC_RESULT reset_value) Filter Result */ + +#define DAC_RESULT_RESULT_Pos 0 /**< \brief (DAC_RESULT) Filter Result */ +#define DAC_RESULT_RESULT_Msk (_U_(0xFFFF) << DAC_RESULT_RESULT_Pos) +#define DAC_RESULT_RESULT(value) (DAC_RESULT_RESULT_Msk & ((value) << DAC_RESULT_RESULT_Pos)) +#define DAC_RESULT_MASK _U_(0xFFFF) /**< \brief (DAC_RESULT) MASK Register */ + +/** \brief DAC hardware registers */ +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +typedef struct { + __IO DAC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */ + __IO DAC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 (R/W 8) Control B */ + __IO DAC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 8) Event Control */ + RoReg8 Reserved1[0x1]; + __IO DAC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */ + __IO DAC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */ + __IO DAC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */ + __I DAC_STATUS_Type STATUS; /**< \brief Offset: 0x07 (R/ 8) Status */ + __I DAC_SYNCBUSY_Type SYNCBUSY; /**< \brief Offset: 0x08 (R/ 32) Synchronization Busy */ + __IO DAC_DACCTRL_Type DACCTRL[2]; /**< \brief Offset: 0x0C (R/W 16) DAC n Control */ + __O DAC_DATA_Type DATA[2]; /**< \brief Offset: 0x10 ( /W 16) DAC n Data */ + __O DAC_DATABUF_Type DATABUF[2]; /**< \brief Offset: 0x14 ( /W 16) DAC n Data Buffer */ + __IO DAC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x18 (R/W 8) Debug Control */ + RoReg8 Reserved2[0x3]; + __I DAC_RESULT_Type RESULT[2]; /**< \brief Offset: 0x1C (R/ 16) Filter Result */ +} Dac; +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/*@}*/ + +#endif /* _SAMD51_DAC_COMPONENT_ */ diff --git a/lib/samd51/samd51a/include/component/dmac.h b/lib/samd51/samd51a/include/component/dmac.h index a173f99..011cec2 100644 --- a/lib/samd51/samd51a/include/component/dmac.h +++ b/lib/samd51/samd51a/include/component/dmac.h @@ -1,1416 +1,1416 @@ -/** - * \file - * - * \brief Component description for DMAC - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_DMAC_COMPONENT_ -#define _SAMD51_DMAC_COMPONENT_ - -/* ========================================================================== */ -/** SOFTWARE API DEFINITION FOR DMAC */ -/* ========================================================================== */ -/** \addtogroup SAMD51_DMAC Direct Memory Access Controller */ -/*@{*/ - -#define DMAC_U2503 -#define REV_DMAC 0x101 - -/* -------- DMAC_CTRL : (DMAC Offset: 0x00) (R/W 16) Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t SWRST:1; /*!< bit: 0 Software Reset */ - uint16_t DMAENABLE:1; /*!< bit: 1 DMA Enable */ - uint16_t :6; /*!< bit: 2.. 7 Reserved */ - uint16_t LVLEN0:1; /*!< bit: 8 Priority Level 0 Enable */ - uint16_t LVLEN1:1; /*!< bit: 9 Priority Level 1 Enable */ - uint16_t LVLEN2:1; /*!< bit: 10 Priority Level 2 Enable */ - uint16_t LVLEN3:1; /*!< bit: 11 Priority Level 3 Enable */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } bit; /*!< Structure used for bit access */ - struct { - uint16_t :8; /*!< bit: 0.. 7 Reserved */ - uint16_t LVLEN:4; /*!< bit: 8..11 Priority Level x Enable */ - uint16_t :4; /*!< bit: 12..15 Reserved */ - } vec; /*!< Structure used for vec access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_CTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CTRL_OFFSET 0x00 /**< \brief (DMAC_CTRL offset) Control */ -#define DMAC_CTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_CTRL reset_value) Control */ - -#define DMAC_CTRL_SWRST_Pos 0 /**< \brief (DMAC_CTRL) Software Reset */ -#define DMAC_CTRL_SWRST (_U_(0x1) << DMAC_CTRL_SWRST_Pos) -#define DMAC_CTRL_DMAENABLE_Pos 1 /**< \brief (DMAC_CTRL) DMA Enable */ -#define DMAC_CTRL_DMAENABLE (_U_(0x1) << DMAC_CTRL_DMAENABLE_Pos) -#define DMAC_CTRL_LVLEN0_Pos 8 /**< \brief (DMAC_CTRL) Priority Level 0 Enable */ -#define DMAC_CTRL_LVLEN0 (_U_(1) << DMAC_CTRL_LVLEN0_Pos) -#define DMAC_CTRL_LVLEN1_Pos 9 /**< \brief (DMAC_CTRL) Priority Level 1 Enable */ -#define DMAC_CTRL_LVLEN1 (_U_(1) << DMAC_CTRL_LVLEN1_Pos) -#define DMAC_CTRL_LVLEN2_Pos 10 /**< \brief (DMAC_CTRL) Priority Level 2 Enable */ -#define DMAC_CTRL_LVLEN2 (_U_(1) << DMAC_CTRL_LVLEN2_Pos) -#define DMAC_CTRL_LVLEN3_Pos 11 /**< \brief (DMAC_CTRL) Priority Level 3 Enable */ -#define DMAC_CTRL_LVLEN3 (_U_(1) << DMAC_CTRL_LVLEN3_Pos) -#define DMAC_CTRL_LVLEN_Pos 8 /**< \brief (DMAC_CTRL) Priority Level x Enable */ -#define DMAC_CTRL_LVLEN_Msk (_U_(0xF) << DMAC_CTRL_LVLEN_Pos) -#define DMAC_CTRL_LVLEN(value) (DMAC_CTRL_LVLEN_Msk & ((value) << DMAC_CTRL_LVLEN_Pos)) -#define DMAC_CTRL_MASK _U_(0x0F03) /**< \brief (DMAC_CTRL) MASK Register */ - -/* -------- DMAC_CRCCTRL : (DMAC Offset: 0x02) (R/W 16) CRC Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t CRCBEATSIZE:2; /*!< bit: 0.. 1 CRC Beat Size */ - uint16_t CRCPOLY:2; /*!< bit: 2.. 3 CRC Polynomial Type */ - uint16_t :4; /*!< bit: 4.. 7 Reserved */ - uint16_t CRCSRC:6; /*!< bit: 8..13 CRC Input Source */ - uint16_t CRCMODE:2; /*!< bit: 14..15 CRC Operating Mode */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_CRCCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCCTRL_OFFSET 0x02 /**< \brief (DMAC_CRCCTRL offset) CRC Control */ -#define DMAC_CRCCTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_CRCCTRL reset_value) CRC Control */ - -#define DMAC_CRCCTRL_CRCBEATSIZE_Pos 0 /**< \brief (DMAC_CRCCTRL) CRC Beat Size */ -#define DMAC_CRCCTRL_CRCBEATSIZE_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCBEATSIZE(value) (DMAC_CRCCTRL_CRCBEATSIZE_Msk & ((value) << DMAC_CRCCTRL_CRCBEATSIZE_Pos)) -#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) 8-bit bus transfer */ -#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) 16-bit bus transfer */ -#define DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val _U_(0x2) /**< \brief (DMAC_CRCCTRL) 32-bit bus transfer */ -#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE (DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD (DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCBEATSIZE_WORD (DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) -#define DMAC_CRCCTRL_CRCPOLY_Pos 2 /**< \brief (DMAC_CRCCTRL) CRC Polynomial Type */ -#define DMAC_CRCCTRL_CRCPOLY_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCPOLY_Pos) -#define DMAC_CRCCTRL_CRCPOLY(value) (DMAC_CRCCTRL_CRCPOLY_Msk & ((value) << DMAC_CRCCTRL_CRCPOLY_Pos)) -#define DMAC_CRCCTRL_CRCPOLY_CRC16_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) CRC-16 (CRC-CCITT) */ -#define DMAC_CRCCTRL_CRCPOLY_CRC32_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) CRC32 (IEEE 802.3) */ -#define DMAC_CRCCTRL_CRCPOLY_CRC16 (DMAC_CRCCTRL_CRCPOLY_CRC16_Val << DMAC_CRCCTRL_CRCPOLY_Pos) -#define DMAC_CRCCTRL_CRCPOLY_CRC32 (DMAC_CRCCTRL_CRCPOLY_CRC32_Val << DMAC_CRCCTRL_CRCPOLY_Pos) -#define DMAC_CRCCTRL_CRCSRC_Pos 8 /**< \brief (DMAC_CRCCTRL) CRC Input Source */ -#define DMAC_CRCCTRL_CRCSRC_Msk (_U_(0x3F) << DMAC_CRCCTRL_CRCSRC_Pos) -#define DMAC_CRCCTRL_CRCSRC(value) (DMAC_CRCCTRL_CRCSRC_Msk & ((value) << DMAC_CRCCTRL_CRCSRC_Pos)) -#define DMAC_CRCCTRL_CRCSRC_DISABLE_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) CRC Disabled */ -#define DMAC_CRCCTRL_CRCSRC_IO_Val _U_(0x1) /**< \brief (DMAC_CRCCTRL) I/O interface */ -#define DMAC_CRCCTRL_CRCSRC_DISABLE (DMAC_CRCCTRL_CRCSRC_DISABLE_Val << DMAC_CRCCTRL_CRCSRC_Pos) -#define DMAC_CRCCTRL_CRCSRC_IO (DMAC_CRCCTRL_CRCSRC_IO_Val << DMAC_CRCCTRL_CRCSRC_Pos) -#define DMAC_CRCCTRL_CRCMODE_Pos 14 /**< \brief (DMAC_CRCCTRL) CRC Operating Mode */ -#define DMAC_CRCCTRL_CRCMODE_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCMODE_Pos) -#define DMAC_CRCCTRL_CRCMODE(value) (DMAC_CRCCTRL_CRCMODE_Msk & ((value) << DMAC_CRCCTRL_CRCMODE_Pos)) -#define DMAC_CRCCTRL_CRCMODE_DEFAULT_Val _U_(0x0) /**< \brief (DMAC_CRCCTRL) Default operating mode */ -#define DMAC_CRCCTRL_CRCMODE_CRCMON_Val _U_(0x2) /**< \brief (DMAC_CRCCTRL) Memory CRC monitor operating mode */ -#define DMAC_CRCCTRL_CRCMODE_CRCGEN_Val _U_(0x3) /**< \brief (DMAC_CRCCTRL) Memory CRC generation operating mode */ -#define DMAC_CRCCTRL_CRCMODE_DEFAULT (DMAC_CRCCTRL_CRCMODE_DEFAULT_Val << DMAC_CRCCTRL_CRCMODE_Pos) -#define DMAC_CRCCTRL_CRCMODE_CRCMON (DMAC_CRCCTRL_CRCMODE_CRCMON_Val << DMAC_CRCCTRL_CRCMODE_Pos) -#define DMAC_CRCCTRL_CRCMODE_CRCGEN (DMAC_CRCCTRL_CRCMODE_CRCGEN_Val << DMAC_CRCCTRL_CRCMODE_Pos) -#define DMAC_CRCCTRL_MASK _U_(0xFF0F) /**< \brief (DMAC_CRCCTRL) MASK Register */ - -/* -------- DMAC_CRCDATAIN : (DMAC Offset: 0x04) (R/W 32) CRC Data Input -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CRCDATAIN:32; /*!< bit: 0..31 CRC Data Input */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_CRCDATAIN_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCDATAIN_OFFSET 0x04 /**< \brief (DMAC_CRCDATAIN offset) CRC Data Input */ -#define DMAC_CRCDATAIN_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CRCDATAIN reset_value) CRC Data Input */ - -#define DMAC_CRCDATAIN_CRCDATAIN_Pos 0 /**< \brief (DMAC_CRCDATAIN) CRC Data Input */ -#define DMAC_CRCDATAIN_CRCDATAIN_Msk (_U_(0xFFFFFFFF) << DMAC_CRCDATAIN_CRCDATAIN_Pos) -#define DMAC_CRCDATAIN_CRCDATAIN(value) (DMAC_CRCDATAIN_CRCDATAIN_Msk & ((value) << DMAC_CRCDATAIN_CRCDATAIN_Pos)) -#define DMAC_CRCDATAIN_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_CRCDATAIN) MASK Register */ - -/* -------- DMAC_CRCCHKSUM : (DMAC Offset: 0x08) (R/W 32) CRC Checksum -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CRCCHKSUM:32; /*!< bit: 0..31 CRC Checksum */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_CRCCHKSUM_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCCHKSUM_OFFSET 0x08 /**< \brief (DMAC_CRCCHKSUM offset) CRC Checksum */ -#define DMAC_CRCCHKSUM_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CRCCHKSUM reset_value) CRC Checksum */ - -#define DMAC_CRCCHKSUM_CRCCHKSUM_Pos 0 /**< \brief (DMAC_CRCCHKSUM) CRC Checksum */ -#define DMAC_CRCCHKSUM_CRCCHKSUM_Msk (_U_(0xFFFFFFFF) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos) -#define DMAC_CRCCHKSUM_CRCCHKSUM(value) (DMAC_CRCCHKSUM_CRCCHKSUM_Msk & ((value) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos)) -#define DMAC_CRCCHKSUM_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_CRCCHKSUM) MASK Register */ - -/* -------- DMAC_CRCSTATUS : (DMAC Offset: 0x0C) (R/W 8) CRC Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t CRCBUSY:1; /*!< bit: 0 CRC Module Busy */ - uint8_t CRCZERO:1; /*!< bit: 1 CRC Zero */ - uint8_t CRCERR:1; /*!< bit: 2 CRC Error */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CRCSTATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CRCSTATUS_OFFSET 0x0C /**< \brief (DMAC_CRCSTATUS offset) CRC Status */ -#define DMAC_CRCSTATUS_RESETVALUE _U_(0x00) /**< \brief (DMAC_CRCSTATUS reset_value) CRC Status */ - -#define DMAC_CRCSTATUS_CRCBUSY_Pos 0 /**< \brief (DMAC_CRCSTATUS) CRC Module Busy */ -#define DMAC_CRCSTATUS_CRCBUSY (_U_(0x1) << DMAC_CRCSTATUS_CRCBUSY_Pos) -#define DMAC_CRCSTATUS_CRCZERO_Pos 1 /**< \brief (DMAC_CRCSTATUS) CRC Zero */ -#define DMAC_CRCSTATUS_CRCZERO (_U_(0x1) << DMAC_CRCSTATUS_CRCZERO_Pos) -#define DMAC_CRCSTATUS_CRCERR_Pos 2 /**< \brief (DMAC_CRCSTATUS) CRC Error */ -#define DMAC_CRCSTATUS_CRCERR (_U_(0x1) << DMAC_CRCSTATUS_CRCERR_Pos) -#define DMAC_CRCSTATUS_MASK _U_(0x07) /**< \brief (DMAC_CRCSTATUS) MASK Register */ - -/* -------- DMAC_DBGCTRL : (DMAC Offset: 0x0D) (R/W 8) Debug Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */ - uint8_t :7; /*!< bit: 1.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_DBGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_DBGCTRL_OFFSET 0x0D /**< \brief (DMAC_DBGCTRL offset) Debug Control */ -#define DMAC_DBGCTRL_RESETVALUE _U_(0x00) /**< \brief (DMAC_DBGCTRL reset_value) Debug Control */ - -#define DMAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DMAC_DBGCTRL) Debug Run */ -#define DMAC_DBGCTRL_DBGRUN (_U_(0x1) << DMAC_DBGCTRL_DBGRUN_Pos) -#define DMAC_DBGCTRL_MASK _U_(0x01) /**< \brief (DMAC_DBGCTRL) MASK Register */ - -/* -------- DMAC_SWTRIGCTRL : (DMAC Offset: 0x10) (R/W 32) Software Trigger Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWTRIG0:1; /*!< bit: 0 Channel 0 Software Trigger */ - uint32_t SWTRIG1:1; /*!< bit: 1 Channel 1 Software Trigger */ - uint32_t SWTRIG2:1; /*!< bit: 2 Channel 2 Software Trigger */ - uint32_t SWTRIG3:1; /*!< bit: 3 Channel 3 Software Trigger */ - uint32_t SWTRIG4:1; /*!< bit: 4 Channel 4 Software Trigger */ - uint32_t SWTRIG5:1; /*!< bit: 5 Channel 5 Software Trigger */ - uint32_t SWTRIG6:1; /*!< bit: 6 Channel 6 Software Trigger */ - uint32_t SWTRIG7:1; /*!< bit: 7 Channel 7 Software Trigger */ - uint32_t SWTRIG8:1; /*!< bit: 8 Channel 8 Software Trigger */ - uint32_t SWTRIG9:1; /*!< bit: 9 Channel 9 Software Trigger */ - uint32_t SWTRIG10:1; /*!< bit: 10 Channel 10 Software Trigger */ - uint32_t SWTRIG11:1; /*!< bit: 11 Channel 11 Software Trigger */ - uint32_t SWTRIG12:1; /*!< bit: 12 Channel 12 Software Trigger */ - uint32_t SWTRIG13:1; /*!< bit: 13 Channel 13 Software Trigger */ - uint32_t SWTRIG14:1; /*!< bit: 14 Channel 14 Software Trigger */ - uint32_t SWTRIG15:1; /*!< bit: 15 Channel 15 Software Trigger */ - uint32_t SWTRIG16:1; /*!< bit: 16 Channel 16 Software Trigger */ - uint32_t SWTRIG17:1; /*!< bit: 17 Channel 17 Software Trigger */ - uint32_t SWTRIG18:1; /*!< bit: 18 Channel 18 Software Trigger */ - uint32_t SWTRIG19:1; /*!< bit: 19 Channel 19 Software Trigger */ - uint32_t SWTRIG20:1; /*!< bit: 20 Channel 20 Software Trigger */ - uint32_t SWTRIG21:1; /*!< bit: 21 Channel 21 Software Trigger */ - uint32_t SWTRIG22:1; /*!< bit: 22 Channel 22 Software Trigger */ - uint32_t SWTRIG23:1; /*!< bit: 23 Channel 23 Software Trigger */ - uint32_t SWTRIG24:1; /*!< bit: 24 Channel 24 Software Trigger */ - uint32_t SWTRIG25:1; /*!< bit: 25 Channel 25 Software Trigger */ - uint32_t SWTRIG26:1; /*!< bit: 26 Channel 26 Software Trigger */ - uint32_t SWTRIG27:1; /*!< bit: 27 Channel 27 Software Trigger */ - uint32_t SWTRIG28:1; /*!< bit: 28 Channel 28 Software Trigger */ - uint32_t SWTRIG29:1; /*!< bit: 29 Channel 29 Software Trigger */ - uint32_t SWTRIG30:1; /*!< bit: 30 Channel 30 Software Trigger */ - uint32_t SWTRIG31:1; /*!< bit: 31 Channel 31 Software Trigger */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t SWTRIG:32; /*!< bit: 0..31 Channel x Software Trigger */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_SWTRIGCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_SWTRIGCTRL_OFFSET 0x10 /**< \brief (DMAC_SWTRIGCTRL offset) Software Trigger Control */ -#define DMAC_SWTRIGCTRL_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_SWTRIGCTRL reset_value) Software Trigger Control */ - -#define DMAC_SWTRIGCTRL_SWTRIG0_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel 0 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG0 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG0_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG1_Pos 1 /**< \brief (DMAC_SWTRIGCTRL) Channel 1 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG1 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG1_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG2_Pos 2 /**< \brief (DMAC_SWTRIGCTRL) Channel 2 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG2 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG2_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG3_Pos 3 /**< \brief (DMAC_SWTRIGCTRL) Channel 3 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG3 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG3_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG4_Pos 4 /**< \brief (DMAC_SWTRIGCTRL) Channel 4 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG4 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG4_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG5_Pos 5 /**< \brief (DMAC_SWTRIGCTRL) Channel 5 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG5 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG5_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG6_Pos 6 /**< \brief (DMAC_SWTRIGCTRL) Channel 6 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG6 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG6_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG7_Pos 7 /**< \brief (DMAC_SWTRIGCTRL) Channel 7 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG7 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG7_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG8_Pos 8 /**< \brief (DMAC_SWTRIGCTRL) Channel 8 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG8 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG8_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG9_Pos 9 /**< \brief (DMAC_SWTRIGCTRL) Channel 9 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG9 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG9_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG10_Pos 10 /**< \brief (DMAC_SWTRIGCTRL) Channel 10 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG10 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG10_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG11_Pos 11 /**< \brief (DMAC_SWTRIGCTRL) Channel 11 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG11 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG11_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG12_Pos 12 /**< \brief (DMAC_SWTRIGCTRL) Channel 12 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG12 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG12_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG13_Pos 13 /**< \brief (DMAC_SWTRIGCTRL) Channel 13 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG13 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG13_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG14_Pos 14 /**< \brief (DMAC_SWTRIGCTRL) Channel 14 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG14 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG14_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG15_Pos 15 /**< \brief (DMAC_SWTRIGCTRL) Channel 15 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG15 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG15_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG16_Pos 16 /**< \brief (DMAC_SWTRIGCTRL) Channel 16 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG16 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG16_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG17_Pos 17 /**< \brief (DMAC_SWTRIGCTRL) Channel 17 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG17 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG17_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG18_Pos 18 /**< \brief (DMAC_SWTRIGCTRL) Channel 18 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG18 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG18_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG19_Pos 19 /**< \brief (DMAC_SWTRIGCTRL) Channel 19 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG19 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG19_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG20_Pos 20 /**< \brief (DMAC_SWTRIGCTRL) Channel 20 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG20 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG20_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG21_Pos 21 /**< \brief (DMAC_SWTRIGCTRL) Channel 21 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG21 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG21_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG22_Pos 22 /**< \brief (DMAC_SWTRIGCTRL) Channel 22 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG22 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG22_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG23_Pos 23 /**< \brief (DMAC_SWTRIGCTRL) Channel 23 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG23 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG23_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG24_Pos 24 /**< \brief (DMAC_SWTRIGCTRL) Channel 24 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG24 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG24_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG25_Pos 25 /**< \brief (DMAC_SWTRIGCTRL) Channel 25 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG25 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG25_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG26_Pos 26 /**< \brief (DMAC_SWTRIGCTRL) Channel 26 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG26 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG26_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG27_Pos 27 /**< \brief (DMAC_SWTRIGCTRL) Channel 27 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG27 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG27_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG28_Pos 28 /**< \brief (DMAC_SWTRIGCTRL) Channel 28 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG28 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG28_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG29_Pos 29 /**< \brief (DMAC_SWTRIGCTRL) Channel 29 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG29 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG29_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG30_Pos 30 /**< \brief (DMAC_SWTRIGCTRL) Channel 30 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG30 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG30_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG31_Pos 31 /**< \brief (DMAC_SWTRIGCTRL) Channel 31 Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG31 (_U_(1) << DMAC_SWTRIGCTRL_SWTRIG31_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel x Software Trigger */ -#define DMAC_SWTRIGCTRL_SWTRIG_Msk (_U_(0xFFFFFFFF) << DMAC_SWTRIGCTRL_SWTRIG_Pos) -#define DMAC_SWTRIGCTRL_SWTRIG(value) (DMAC_SWTRIGCTRL_SWTRIG_Msk & ((value) << DMAC_SWTRIGCTRL_SWTRIG_Pos)) -#define DMAC_SWTRIGCTRL_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_SWTRIGCTRL) MASK Register */ - -/* -------- DMAC_PRICTRL0 : (DMAC Offset: 0x14) (R/W 32) Priority Control 0 -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t LVLPRI0:5; /*!< bit: 0.. 4 Level 0 Channel Priority Number */ - uint32_t QOS0:2; /*!< bit: 5.. 6 Level 0 Quality of Service */ - uint32_t RRLVLEN0:1; /*!< bit: 7 Level 0 Round-Robin Scheduling Enable */ - uint32_t LVLPRI1:5; /*!< bit: 8..12 Level 1 Channel Priority Number */ - uint32_t QOS1:2; /*!< bit: 13..14 Level 1 Quality of Service */ - uint32_t RRLVLEN1:1; /*!< bit: 15 Level 1 Round-Robin Scheduling Enable */ - uint32_t LVLPRI2:5; /*!< bit: 16..20 Level 2 Channel Priority Number */ - uint32_t QOS2:2; /*!< bit: 21..22 Level 2 Quality of Service */ - uint32_t RRLVLEN2:1; /*!< bit: 23 Level 2 Round-Robin Scheduling Enable */ - uint32_t LVLPRI3:5; /*!< bit: 24..28 Level 3 Channel Priority Number */ - uint32_t QOS3:2; /*!< bit: 29..30 Level 3 Quality of Service */ - uint32_t RRLVLEN3:1; /*!< bit: 31 Level 3 Round-Robin Scheduling Enable */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_PRICTRL0_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_PRICTRL0_OFFSET 0x14 /**< \brief (DMAC_PRICTRL0 offset) Priority Control 0 */ -#define DMAC_PRICTRL0_RESETVALUE _U_(0x40404040) /**< \brief (DMAC_PRICTRL0 reset_value) Priority Control 0 */ - -#define DMAC_PRICTRL0_LVLPRI0_Pos 0 /**< \brief (DMAC_PRICTRL0) Level 0 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI0_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI0_Pos) -#define DMAC_PRICTRL0_LVLPRI0(value) (DMAC_PRICTRL0_LVLPRI0_Msk & ((value) << DMAC_PRICTRL0_LVLPRI0_Pos)) -#define DMAC_PRICTRL0_QOS0_Pos 5 /**< \brief (DMAC_PRICTRL0) Level 0 Quality of Service */ -#define DMAC_PRICTRL0_QOS0_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS0_Pos) -#define DMAC_PRICTRL0_QOS0(value) (DMAC_PRICTRL0_QOS0_Msk & ((value) << DMAC_PRICTRL0_QOS0_Pos)) -#define DMAC_PRICTRL0_QOS0_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ -#define DMAC_PRICTRL0_QOS0_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ -#define DMAC_PRICTRL0_QOS0_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ -#define DMAC_PRICTRL0_QOS0_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ -#define DMAC_PRICTRL0_QOS0_REGULAR (DMAC_PRICTRL0_QOS0_REGULAR_Val << DMAC_PRICTRL0_QOS0_Pos) -#define DMAC_PRICTRL0_QOS0_SHORTAGE (DMAC_PRICTRL0_QOS0_SHORTAGE_Val << DMAC_PRICTRL0_QOS0_Pos) -#define DMAC_PRICTRL0_QOS0_SENSITIVE (DMAC_PRICTRL0_QOS0_SENSITIVE_Val << DMAC_PRICTRL0_QOS0_Pos) -#define DMAC_PRICTRL0_QOS0_CRITICAL (DMAC_PRICTRL0_QOS0_CRITICAL_Val << DMAC_PRICTRL0_QOS0_Pos) -#define DMAC_PRICTRL0_RRLVLEN0_Pos 7 /**< \brief (DMAC_PRICTRL0) Level 0 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN0 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN0_Pos) -#define DMAC_PRICTRL0_LVLPRI1_Pos 8 /**< \brief (DMAC_PRICTRL0) Level 1 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI1_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI1_Pos) -#define DMAC_PRICTRL0_LVLPRI1(value) (DMAC_PRICTRL0_LVLPRI1_Msk & ((value) << DMAC_PRICTRL0_LVLPRI1_Pos)) -#define DMAC_PRICTRL0_QOS1_Pos 13 /**< \brief (DMAC_PRICTRL0) Level 1 Quality of Service */ -#define DMAC_PRICTRL0_QOS1_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS1_Pos) -#define DMAC_PRICTRL0_QOS1(value) (DMAC_PRICTRL0_QOS1_Msk & ((value) << DMAC_PRICTRL0_QOS1_Pos)) -#define DMAC_PRICTRL0_QOS1_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ -#define DMAC_PRICTRL0_QOS1_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ -#define DMAC_PRICTRL0_QOS1_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ -#define DMAC_PRICTRL0_QOS1_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ -#define DMAC_PRICTRL0_QOS1_REGULAR (DMAC_PRICTRL0_QOS1_REGULAR_Val << DMAC_PRICTRL0_QOS1_Pos) -#define DMAC_PRICTRL0_QOS1_SHORTAGE (DMAC_PRICTRL0_QOS1_SHORTAGE_Val << DMAC_PRICTRL0_QOS1_Pos) -#define DMAC_PRICTRL0_QOS1_SENSITIVE (DMAC_PRICTRL0_QOS1_SENSITIVE_Val << DMAC_PRICTRL0_QOS1_Pos) -#define DMAC_PRICTRL0_QOS1_CRITICAL (DMAC_PRICTRL0_QOS1_CRITICAL_Val << DMAC_PRICTRL0_QOS1_Pos) -#define DMAC_PRICTRL0_RRLVLEN1_Pos 15 /**< \brief (DMAC_PRICTRL0) Level 1 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN1 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN1_Pos) -#define DMAC_PRICTRL0_LVLPRI2_Pos 16 /**< \brief (DMAC_PRICTRL0) Level 2 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI2_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI2_Pos) -#define DMAC_PRICTRL0_LVLPRI2(value) (DMAC_PRICTRL0_LVLPRI2_Msk & ((value) << DMAC_PRICTRL0_LVLPRI2_Pos)) -#define DMAC_PRICTRL0_QOS2_Pos 21 /**< \brief (DMAC_PRICTRL0) Level 2 Quality of Service */ -#define DMAC_PRICTRL0_QOS2_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS2_Pos) -#define DMAC_PRICTRL0_QOS2(value) (DMAC_PRICTRL0_QOS2_Msk & ((value) << DMAC_PRICTRL0_QOS2_Pos)) -#define DMAC_PRICTRL0_QOS2_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ -#define DMAC_PRICTRL0_QOS2_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ -#define DMAC_PRICTRL0_QOS2_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ -#define DMAC_PRICTRL0_QOS2_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ -#define DMAC_PRICTRL0_QOS2_REGULAR (DMAC_PRICTRL0_QOS2_REGULAR_Val << DMAC_PRICTRL0_QOS2_Pos) -#define DMAC_PRICTRL0_QOS2_SHORTAGE (DMAC_PRICTRL0_QOS2_SHORTAGE_Val << DMAC_PRICTRL0_QOS2_Pos) -#define DMAC_PRICTRL0_QOS2_SENSITIVE (DMAC_PRICTRL0_QOS2_SENSITIVE_Val << DMAC_PRICTRL0_QOS2_Pos) -#define DMAC_PRICTRL0_QOS2_CRITICAL (DMAC_PRICTRL0_QOS2_CRITICAL_Val << DMAC_PRICTRL0_QOS2_Pos) -#define DMAC_PRICTRL0_RRLVLEN2_Pos 23 /**< \brief (DMAC_PRICTRL0) Level 2 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN2 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN2_Pos) -#define DMAC_PRICTRL0_LVLPRI3_Pos 24 /**< \brief (DMAC_PRICTRL0) Level 3 Channel Priority Number */ -#define DMAC_PRICTRL0_LVLPRI3_Msk (_U_(0x1F) << DMAC_PRICTRL0_LVLPRI3_Pos) -#define DMAC_PRICTRL0_LVLPRI3(value) (DMAC_PRICTRL0_LVLPRI3_Msk & ((value) << DMAC_PRICTRL0_LVLPRI3_Pos)) -#define DMAC_PRICTRL0_QOS3_Pos 29 /**< \brief (DMAC_PRICTRL0) Level 3 Quality of Service */ -#define DMAC_PRICTRL0_QOS3_Msk (_U_(0x3) << DMAC_PRICTRL0_QOS3_Pos) -#define DMAC_PRICTRL0_QOS3(value) (DMAC_PRICTRL0_QOS3_Msk & ((value) << DMAC_PRICTRL0_QOS3_Pos)) -#define DMAC_PRICTRL0_QOS3_REGULAR_Val _U_(0x0) /**< \brief (DMAC_PRICTRL0) Regular delivery */ -#define DMAC_PRICTRL0_QOS3_SHORTAGE_Val _U_(0x1) /**< \brief (DMAC_PRICTRL0) Bandwidth shortage */ -#define DMAC_PRICTRL0_QOS3_SENSITIVE_Val _U_(0x2) /**< \brief (DMAC_PRICTRL0) Latency sensitive */ -#define DMAC_PRICTRL0_QOS3_CRITICAL_Val _U_(0x3) /**< \brief (DMAC_PRICTRL0) Latency critical */ -#define DMAC_PRICTRL0_QOS3_REGULAR (DMAC_PRICTRL0_QOS3_REGULAR_Val << DMAC_PRICTRL0_QOS3_Pos) -#define DMAC_PRICTRL0_QOS3_SHORTAGE (DMAC_PRICTRL0_QOS3_SHORTAGE_Val << DMAC_PRICTRL0_QOS3_Pos) -#define DMAC_PRICTRL0_QOS3_SENSITIVE (DMAC_PRICTRL0_QOS3_SENSITIVE_Val << DMAC_PRICTRL0_QOS3_Pos) -#define DMAC_PRICTRL0_QOS3_CRITICAL (DMAC_PRICTRL0_QOS3_CRITICAL_Val << DMAC_PRICTRL0_QOS3_Pos) -#define DMAC_PRICTRL0_RRLVLEN3_Pos 31 /**< \brief (DMAC_PRICTRL0) Level 3 Round-Robin Scheduling Enable */ -#define DMAC_PRICTRL0_RRLVLEN3 (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN3_Pos) -#define DMAC_PRICTRL0_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_PRICTRL0) MASK Register */ - -/* -------- DMAC_INTPEND : (DMAC Offset: 0x20) (R/W 16) Interrupt Pending -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t ID:5; /*!< bit: 0.. 4 Channel ID */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t TERR:1; /*!< bit: 8 Transfer Error */ - uint16_t TCMPL:1; /*!< bit: 9 Transfer Complete */ - uint16_t SUSP:1; /*!< bit: 10 Channel Suspend */ - uint16_t :1; /*!< bit: 11 Reserved */ - uint16_t CRCERR:1; /*!< bit: 12 CRC Error */ - uint16_t FERR:1; /*!< bit: 13 Fetch Error */ - uint16_t BUSY:1; /*!< bit: 14 Busy */ - uint16_t PEND:1; /*!< bit: 15 Pending */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_INTPEND_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_INTPEND_OFFSET 0x20 /**< \brief (DMAC_INTPEND offset) Interrupt Pending */ -#define DMAC_INTPEND_RESETVALUE _U_(0x0000) /**< \brief (DMAC_INTPEND reset_value) Interrupt Pending */ - -#define DMAC_INTPEND_ID_Pos 0 /**< \brief (DMAC_INTPEND) Channel ID */ -#define DMAC_INTPEND_ID_Msk (_U_(0x1F) << DMAC_INTPEND_ID_Pos) -#define DMAC_INTPEND_ID(value) (DMAC_INTPEND_ID_Msk & ((value) << DMAC_INTPEND_ID_Pos)) -#define DMAC_INTPEND_TERR_Pos 8 /**< \brief (DMAC_INTPEND) Transfer Error */ -#define DMAC_INTPEND_TERR (_U_(0x1) << DMAC_INTPEND_TERR_Pos) -#define DMAC_INTPEND_TCMPL_Pos 9 /**< \brief (DMAC_INTPEND) Transfer Complete */ -#define DMAC_INTPEND_TCMPL (_U_(0x1) << DMAC_INTPEND_TCMPL_Pos) -#define DMAC_INTPEND_SUSP_Pos 10 /**< \brief (DMAC_INTPEND) Channel Suspend */ -#define DMAC_INTPEND_SUSP (_U_(0x1) << DMAC_INTPEND_SUSP_Pos) -#define DMAC_INTPEND_CRCERR_Pos 12 /**< \brief (DMAC_INTPEND) CRC Error */ -#define DMAC_INTPEND_CRCERR (_U_(0x1) << DMAC_INTPEND_CRCERR_Pos) -#define DMAC_INTPEND_FERR_Pos 13 /**< \brief (DMAC_INTPEND) Fetch Error */ -#define DMAC_INTPEND_FERR (_U_(0x1) << DMAC_INTPEND_FERR_Pos) -#define DMAC_INTPEND_BUSY_Pos 14 /**< \brief (DMAC_INTPEND) Busy */ -#define DMAC_INTPEND_BUSY (_U_(0x1) << DMAC_INTPEND_BUSY_Pos) -#define DMAC_INTPEND_PEND_Pos 15 /**< \brief (DMAC_INTPEND) Pending */ -#define DMAC_INTPEND_PEND (_U_(0x1) << DMAC_INTPEND_PEND_Pos) -#define DMAC_INTPEND_MASK _U_(0xF71F) /**< \brief (DMAC_INTPEND) MASK Register */ - -/* -------- DMAC_INTSTATUS : (DMAC Offset: 0x24) (R/ 32) Interrupt Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t CHINT0:1; /*!< bit: 0 Channel 0 Pending Interrupt */ - uint32_t CHINT1:1; /*!< bit: 1 Channel 1 Pending Interrupt */ - uint32_t CHINT2:1; /*!< bit: 2 Channel 2 Pending Interrupt */ - uint32_t CHINT3:1; /*!< bit: 3 Channel 3 Pending Interrupt */ - uint32_t CHINT4:1; /*!< bit: 4 Channel 4 Pending Interrupt */ - uint32_t CHINT5:1; /*!< bit: 5 Channel 5 Pending Interrupt */ - uint32_t CHINT6:1; /*!< bit: 6 Channel 6 Pending Interrupt */ - uint32_t CHINT7:1; /*!< bit: 7 Channel 7 Pending Interrupt */ - uint32_t CHINT8:1; /*!< bit: 8 Channel 8 Pending Interrupt */ - uint32_t CHINT9:1; /*!< bit: 9 Channel 9 Pending Interrupt */ - uint32_t CHINT10:1; /*!< bit: 10 Channel 10 Pending Interrupt */ - uint32_t CHINT11:1; /*!< bit: 11 Channel 11 Pending Interrupt */ - uint32_t CHINT12:1; /*!< bit: 12 Channel 12 Pending Interrupt */ - uint32_t CHINT13:1; /*!< bit: 13 Channel 13 Pending Interrupt */ - uint32_t CHINT14:1; /*!< bit: 14 Channel 14 Pending Interrupt */ - uint32_t CHINT15:1; /*!< bit: 15 Channel 15 Pending Interrupt */ - uint32_t CHINT16:1; /*!< bit: 16 Channel 16 Pending Interrupt */ - uint32_t CHINT17:1; /*!< bit: 17 Channel 17 Pending Interrupt */ - uint32_t CHINT18:1; /*!< bit: 18 Channel 18 Pending Interrupt */ - uint32_t CHINT19:1; /*!< bit: 19 Channel 19 Pending Interrupt */ - uint32_t CHINT20:1; /*!< bit: 20 Channel 20 Pending Interrupt */ - uint32_t CHINT21:1; /*!< bit: 21 Channel 21 Pending Interrupt */ - uint32_t CHINT22:1; /*!< bit: 22 Channel 22 Pending Interrupt */ - uint32_t CHINT23:1; /*!< bit: 23 Channel 23 Pending Interrupt */ - uint32_t CHINT24:1; /*!< bit: 24 Channel 24 Pending Interrupt */ - uint32_t CHINT25:1; /*!< bit: 25 Channel 25 Pending Interrupt */ - uint32_t CHINT26:1; /*!< bit: 26 Channel 26 Pending Interrupt */ - uint32_t CHINT27:1; /*!< bit: 27 Channel 27 Pending Interrupt */ - uint32_t CHINT28:1; /*!< bit: 28 Channel 28 Pending Interrupt */ - uint32_t CHINT29:1; /*!< bit: 29 Channel 29 Pending Interrupt */ - uint32_t CHINT30:1; /*!< bit: 30 Channel 30 Pending Interrupt */ - uint32_t CHINT31:1; /*!< bit: 31 Channel 31 Pending Interrupt */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t CHINT:32; /*!< bit: 0..31 Channel x Pending Interrupt */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_INTSTATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_INTSTATUS_OFFSET 0x24 /**< \brief (DMAC_INTSTATUS offset) Interrupt Status */ -#define DMAC_INTSTATUS_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_INTSTATUS reset_value) Interrupt Status */ - -#define DMAC_INTSTATUS_CHINT0_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel 0 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT0 (_U_(1) << DMAC_INTSTATUS_CHINT0_Pos) -#define DMAC_INTSTATUS_CHINT1_Pos 1 /**< \brief (DMAC_INTSTATUS) Channel 1 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT1 (_U_(1) << DMAC_INTSTATUS_CHINT1_Pos) -#define DMAC_INTSTATUS_CHINT2_Pos 2 /**< \brief (DMAC_INTSTATUS) Channel 2 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT2 (_U_(1) << DMAC_INTSTATUS_CHINT2_Pos) -#define DMAC_INTSTATUS_CHINT3_Pos 3 /**< \brief (DMAC_INTSTATUS) Channel 3 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT3 (_U_(1) << DMAC_INTSTATUS_CHINT3_Pos) -#define DMAC_INTSTATUS_CHINT4_Pos 4 /**< \brief (DMAC_INTSTATUS) Channel 4 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT4 (_U_(1) << DMAC_INTSTATUS_CHINT4_Pos) -#define DMAC_INTSTATUS_CHINT5_Pos 5 /**< \brief (DMAC_INTSTATUS) Channel 5 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT5 (_U_(1) << DMAC_INTSTATUS_CHINT5_Pos) -#define DMAC_INTSTATUS_CHINT6_Pos 6 /**< \brief (DMAC_INTSTATUS) Channel 6 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT6 (_U_(1) << DMAC_INTSTATUS_CHINT6_Pos) -#define DMAC_INTSTATUS_CHINT7_Pos 7 /**< \brief (DMAC_INTSTATUS) Channel 7 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT7 (_U_(1) << DMAC_INTSTATUS_CHINT7_Pos) -#define DMAC_INTSTATUS_CHINT8_Pos 8 /**< \brief (DMAC_INTSTATUS) Channel 8 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT8 (_U_(1) << DMAC_INTSTATUS_CHINT8_Pos) -#define DMAC_INTSTATUS_CHINT9_Pos 9 /**< \brief (DMAC_INTSTATUS) Channel 9 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT9 (_U_(1) << DMAC_INTSTATUS_CHINT9_Pos) -#define DMAC_INTSTATUS_CHINT10_Pos 10 /**< \brief (DMAC_INTSTATUS) Channel 10 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT10 (_U_(1) << DMAC_INTSTATUS_CHINT10_Pos) -#define DMAC_INTSTATUS_CHINT11_Pos 11 /**< \brief (DMAC_INTSTATUS) Channel 11 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT11 (_U_(1) << DMAC_INTSTATUS_CHINT11_Pos) -#define DMAC_INTSTATUS_CHINT12_Pos 12 /**< \brief (DMAC_INTSTATUS) Channel 12 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT12 (_U_(1) << DMAC_INTSTATUS_CHINT12_Pos) -#define DMAC_INTSTATUS_CHINT13_Pos 13 /**< \brief (DMAC_INTSTATUS) Channel 13 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT13 (_U_(1) << DMAC_INTSTATUS_CHINT13_Pos) -#define DMAC_INTSTATUS_CHINT14_Pos 14 /**< \brief (DMAC_INTSTATUS) Channel 14 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT14 (_U_(1) << DMAC_INTSTATUS_CHINT14_Pos) -#define DMAC_INTSTATUS_CHINT15_Pos 15 /**< \brief (DMAC_INTSTATUS) Channel 15 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT15 (_U_(1) << DMAC_INTSTATUS_CHINT15_Pos) -#define DMAC_INTSTATUS_CHINT16_Pos 16 /**< \brief (DMAC_INTSTATUS) Channel 16 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT16 (_U_(1) << DMAC_INTSTATUS_CHINT16_Pos) -#define DMAC_INTSTATUS_CHINT17_Pos 17 /**< \brief (DMAC_INTSTATUS) Channel 17 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT17 (_U_(1) << DMAC_INTSTATUS_CHINT17_Pos) -#define DMAC_INTSTATUS_CHINT18_Pos 18 /**< \brief (DMAC_INTSTATUS) Channel 18 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT18 (_U_(1) << DMAC_INTSTATUS_CHINT18_Pos) -#define DMAC_INTSTATUS_CHINT19_Pos 19 /**< \brief (DMAC_INTSTATUS) Channel 19 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT19 (_U_(1) << DMAC_INTSTATUS_CHINT19_Pos) -#define DMAC_INTSTATUS_CHINT20_Pos 20 /**< \brief (DMAC_INTSTATUS) Channel 20 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT20 (_U_(1) << DMAC_INTSTATUS_CHINT20_Pos) -#define DMAC_INTSTATUS_CHINT21_Pos 21 /**< \brief (DMAC_INTSTATUS) Channel 21 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT21 (_U_(1) << DMAC_INTSTATUS_CHINT21_Pos) -#define DMAC_INTSTATUS_CHINT22_Pos 22 /**< \brief (DMAC_INTSTATUS) Channel 22 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT22 (_U_(1) << DMAC_INTSTATUS_CHINT22_Pos) -#define DMAC_INTSTATUS_CHINT23_Pos 23 /**< \brief (DMAC_INTSTATUS) Channel 23 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT23 (_U_(1) << DMAC_INTSTATUS_CHINT23_Pos) -#define DMAC_INTSTATUS_CHINT24_Pos 24 /**< \brief (DMAC_INTSTATUS) Channel 24 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT24 (_U_(1) << DMAC_INTSTATUS_CHINT24_Pos) -#define DMAC_INTSTATUS_CHINT25_Pos 25 /**< \brief (DMAC_INTSTATUS) Channel 25 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT25 (_U_(1) << DMAC_INTSTATUS_CHINT25_Pos) -#define DMAC_INTSTATUS_CHINT26_Pos 26 /**< \brief (DMAC_INTSTATUS) Channel 26 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT26 (_U_(1) << DMAC_INTSTATUS_CHINT26_Pos) -#define DMAC_INTSTATUS_CHINT27_Pos 27 /**< \brief (DMAC_INTSTATUS) Channel 27 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT27 (_U_(1) << DMAC_INTSTATUS_CHINT27_Pos) -#define DMAC_INTSTATUS_CHINT28_Pos 28 /**< \brief (DMAC_INTSTATUS) Channel 28 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT28 (_U_(1) << DMAC_INTSTATUS_CHINT28_Pos) -#define DMAC_INTSTATUS_CHINT29_Pos 29 /**< \brief (DMAC_INTSTATUS) Channel 29 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT29 (_U_(1) << DMAC_INTSTATUS_CHINT29_Pos) -#define DMAC_INTSTATUS_CHINT30_Pos 30 /**< \brief (DMAC_INTSTATUS) Channel 30 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT30 (_U_(1) << DMAC_INTSTATUS_CHINT30_Pos) -#define DMAC_INTSTATUS_CHINT31_Pos 31 /**< \brief (DMAC_INTSTATUS) Channel 31 Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT31 (_U_(1) << DMAC_INTSTATUS_CHINT31_Pos) -#define DMAC_INTSTATUS_CHINT_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel x Pending Interrupt */ -#define DMAC_INTSTATUS_CHINT_Msk (_U_(0xFFFFFFFF) << DMAC_INTSTATUS_CHINT_Pos) -#define DMAC_INTSTATUS_CHINT(value) (DMAC_INTSTATUS_CHINT_Msk & ((value) << DMAC_INTSTATUS_CHINT_Pos)) -#define DMAC_INTSTATUS_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_INTSTATUS) MASK Register */ - -/* -------- DMAC_BUSYCH : (DMAC Offset: 0x28) (R/ 32) Busy Channels -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t BUSYCH0:1; /*!< bit: 0 Busy Channel 0 */ - uint32_t BUSYCH1:1; /*!< bit: 1 Busy Channel 1 */ - uint32_t BUSYCH2:1; /*!< bit: 2 Busy Channel 2 */ - uint32_t BUSYCH3:1; /*!< bit: 3 Busy Channel 3 */ - uint32_t BUSYCH4:1; /*!< bit: 4 Busy Channel 4 */ - uint32_t BUSYCH5:1; /*!< bit: 5 Busy Channel 5 */ - uint32_t BUSYCH6:1; /*!< bit: 6 Busy Channel 6 */ - uint32_t BUSYCH7:1; /*!< bit: 7 Busy Channel 7 */ - uint32_t BUSYCH8:1; /*!< bit: 8 Busy Channel 8 */ - uint32_t BUSYCH9:1; /*!< bit: 9 Busy Channel 9 */ - uint32_t BUSYCH10:1; /*!< bit: 10 Busy Channel 10 */ - uint32_t BUSYCH11:1; /*!< bit: 11 Busy Channel 11 */ - uint32_t BUSYCH12:1; /*!< bit: 12 Busy Channel 12 */ - uint32_t BUSYCH13:1; /*!< bit: 13 Busy Channel 13 */ - uint32_t BUSYCH14:1; /*!< bit: 14 Busy Channel 14 */ - uint32_t BUSYCH15:1; /*!< bit: 15 Busy Channel 15 */ - uint32_t BUSYCH16:1; /*!< bit: 16 Busy Channel 16 */ - uint32_t BUSYCH17:1; /*!< bit: 17 Busy Channel 17 */ - uint32_t BUSYCH18:1; /*!< bit: 18 Busy Channel 18 */ - uint32_t BUSYCH19:1; /*!< bit: 19 Busy Channel 19 */ - uint32_t BUSYCH20:1; /*!< bit: 20 Busy Channel 20 */ - uint32_t BUSYCH21:1; /*!< bit: 21 Busy Channel 21 */ - uint32_t BUSYCH22:1; /*!< bit: 22 Busy Channel 22 */ - uint32_t BUSYCH23:1; /*!< bit: 23 Busy Channel 23 */ - uint32_t BUSYCH24:1; /*!< bit: 24 Busy Channel 24 */ - uint32_t BUSYCH25:1; /*!< bit: 25 Busy Channel 25 */ - uint32_t BUSYCH26:1; /*!< bit: 26 Busy Channel 26 */ - uint32_t BUSYCH27:1; /*!< bit: 27 Busy Channel 27 */ - uint32_t BUSYCH28:1; /*!< bit: 28 Busy Channel 28 */ - uint32_t BUSYCH29:1; /*!< bit: 29 Busy Channel 29 */ - uint32_t BUSYCH30:1; /*!< bit: 30 Busy Channel 30 */ - uint32_t BUSYCH31:1; /*!< bit: 31 Busy Channel 31 */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t BUSYCH:32; /*!< bit: 0..31 Busy Channel x */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_BUSYCH_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_BUSYCH_OFFSET 0x28 /**< \brief (DMAC_BUSYCH offset) Busy Channels */ -#define DMAC_BUSYCH_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_BUSYCH reset_value) Busy Channels */ - -#define DMAC_BUSYCH_BUSYCH0_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel 0 */ -#define DMAC_BUSYCH_BUSYCH0 (_U_(1) << DMAC_BUSYCH_BUSYCH0_Pos) -#define DMAC_BUSYCH_BUSYCH1_Pos 1 /**< \brief (DMAC_BUSYCH) Busy Channel 1 */ -#define DMAC_BUSYCH_BUSYCH1 (_U_(1) << DMAC_BUSYCH_BUSYCH1_Pos) -#define DMAC_BUSYCH_BUSYCH2_Pos 2 /**< \brief (DMAC_BUSYCH) Busy Channel 2 */ -#define DMAC_BUSYCH_BUSYCH2 (_U_(1) << DMAC_BUSYCH_BUSYCH2_Pos) -#define DMAC_BUSYCH_BUSYCH3_Pos 3 /**< \brief (DMAC_BUSYCH) Busy Channel 3 */ -#define DMAC_BUSYCH_BUSYCH3 (_U_(1) << DMAC_BUSYCH_BUSYCH3_Pos) -#define DMAC_BUSYCH_BUSYCH4_Pos 4 /**< \brief (DMAC_BUSYCH) Busy Channel 4 */ -#define DMAC_BUSYCH_BUSYCH4 (_U_(1) << DMAC_BUSYCH_BUSYCH4_Pos) -#define DMAC_BUSYCH_BUSYCH5_Pos 5 /**< \brief (DMAC_BUSYCH) Busy Channel 5 */ -#define DMAC_BUSYCH_BUSYCH5 (_U_(1) << DMAC_BUSYCH_BUSYCH5_Pos) -#define DMAC_BUSYCH_BUSYCH6_Pos 6 /**< \brief (DMAC_BUSYCH) Busy Channel 6 */ -#define DMAC_BUSYCH_BUSYCH6 (_U_(1) << DMAC_BUSYCH_BUSYCH6_Pos) -#define DMAC_BUSYCH_BUSYCH7_Pos 7 /**< \brief (DMAC_BUSYCH) Busy Channel 7 */ -#define DMAC_BUSYCH_BUSYCH7 (_U_(1) << DMAC_BUSYCH_BUSYCH7_Pos) -#define DMAC_BUSYCH_BUSYCH8_Pos 8 /**< \brief (DMAC_BUSYCH) Busy Channel 8 */ -#define DMAC_BUSYCH_BUSYCH8 (_U_(1) << DMAC_BUSYCH_BUSYCH8_Pos) -#define DMAC_BUSYCH_BUSYCH9_Pos 9 /**< \brief (DMAC_BUSYCH) Busy Channel 9 */ -#define DMAC_BUSYCH_BUSYCH9 (_U_(1) << DMAC_BUSYCH_BUSYCH9_Pos) -#define DMAC_BUSYCH_BUSYCH10_Pos 10 /**< \brief (DMAC_BUSYCH) Busy Channel 10 */ -#define DMAC_BUSYCH_BUSYCH10 (_U_(1) << DMAC_BUSYCH_BUSYCH10_Pos) -#define DMAC_BUSYCH_BUSYCH11_Pos 11 /**< \brief (DMAC_BUSYCH) Busy Channel 11 */ -#define DMAC_BUSYCH_BUSYCH11 (_U_(1) << DMAC_BUSYCH_BUSYCH11_Pos) -#define DMAC_BUSYCH_BUSYCH12_Pos 12 /**< \brief (DMAC_BUSYCH) Busy Channel 12 */ -#define DMAC_BUSYCH_BUSYCH12 (_U_(1) << DMAC_BUSYCH_BUSYCH12_Pos) -#define DMAC_BUSYCH_BUSYCH13_Pos 13 /**< \brief (DMAC_BUSYCH) Busy Channel 13 */ -#define DMAC_BUSYCH_BUSYCH13 (_U_(1) << DMAC_BUSYCH_BUSYCH13_Pos) -#define DMAC_BUSYCH_BUSYCH14_Pos 14 /**< \brief (DMAC_BUSYCH) Busy Channel 14 */ -#define DMAC_BUSYCH_BUSYCH14 (_U_(1) << DMAC_BUSYCH_BUSYCH14_Pos) -#define DMAC_BUSYCH_BUSYCH15_Pos 15 /**< \brief (DMAC_BUSYCH) Busy Channel 15 */ -#define DMAC_BUSYCH_BUSYCH15 (_U_(1) << DMAC_BUSYCH_BUSYCH15_Pos) -#define DMAC_BUSYCH_BUSYCH16_Pos 16 /**< \brief (DMAC_BUSYCH) Busy Channel 16 */ -#define DMAC_BUSYCH_BUSYCH16 (_U_(1) << DMAC_BUSYCH_BUSYCH16_Pos) -#define DMAC_BUSYCH_BUSYCH17_Pos 17 /**< \brief (DMAC_BUSYCH) Busy Channel 17 */ -#define DMAC_BUSYCH_BUSYCH17 (_U_(1) << DMAC_BUSYCH_BUSYCH17_Pos) -#define DMAC_BUSYCH_BUSYCH18_Pos 18 /**< \brief (DMAC_BUSYCH) Busy Channel 18 */ -#define DMAC_BUSYCH_BUSYCH18 (_U_(1) << DMAC_BUSYCH_BUSYCH18_Pos) -#define DMAC_BUSYCH_BUSYCH19_Pos 19 /**< \brief (DMAC_BUSYCH) Busy Channel 19 */ -#define DMAC_BUSYCH_BUSYCH19 (_U_(1) << DMAC_BUSYCH_BUSYCH19_Pos) -#define DMAC_BUSYCH_BUSYCH20_Pos 20 /**< \brief (DMAC_BUSYCH) Busy Channel 20 */ -#define DMAC_BUSYCH_BUSYCH20 (_U_(1) << DMAC_BUSYCH_BUSYCH20_Pos) -#define DMAC_BUSYCH_BUSYCH21_Pos 21 /**< \brief (DMAC_BUSYCH) Busy Channel 21 */ -#define DMAC_BUSYCH_BUSYCH21 (_U_(1) << DMAC_BUSYCH_BUSYCH21_Pos) -#define DMAC_BUSYCH_BUSYCH22_Pos 22 /**< \brief (DMAC_BUSYCH) Busy Channel 22 */ -#define DMAC_BUSYCH_BUSYCH22 (_U_(1) << DMAC_BUSYCH_BUSYCH22_Pos) -#define DMAC_BUSYCH_BUSYCH23_Pos 23 /**< \brief (DMAC_BUSYCH) Busy Channel 23 */ -#define DMAC_BUSYCH_BUSYCH23 (_U_(1) << DMAC_BUSYCH_BUSYCH23_Pos) -#define DMAC_BUSYCH_BUSYCH24_Pos 24 /**< \brief (DMAC_BUSYCH) Busy Channel 24 */ -#define DMAC_BUSYCH_BUSYCH24 (_U_(1) << DMAC_BUSYCH_BUSYCH24_Pos) -#define DMAC_BUSYCH_BUSYCH25_Pos 25 /**< \brief (DMAC_BUSYCH) Busy Channel 25 */ -#define DMAC_BUSYCH_BUSYCH25 (_U_(1) << DMAC_BUSYCH_BUSYCH25_Pos) -#define DMAC_BUSYCH_BUSYCH26_Pos 26 /**< \brief (DMAC_BUSYCH) Busy Channel 26 */ -#define DMAC_BUSYCH_BUSYCH26 (_U_(1) << DMAC_BUSYCH_BUSYCH26_Pos) -#define DMAC_BUSYCH_BUSYCH27_Pos 27 /**< \brief (DMAC_BUSYCH) Busy Channel 27 */ -#define DMAC_BUSYCH_BUSYCH27 (_U_(1) << DMAC_BUSYCH_BUSYCH27_Pos) -#define DMAC_BUSYCH_BUSYCH28_Pos 28 /**< \brief (DMAC_BUSYCH) Busy Channel 28 */ -#define DMAC_BUSYCH_BUSYCH28 (_U_(1) << DMAC_BUSYCH_BUSYCH28_Pos) -#define DMAC_BUSYCH_BUSYCH29_Pos 29 /**< \brief (DMAC_BUSYCH) Busy Channel 29 */ -#define DMAC_BUSYCH_BUSYCH29 (_U_(1) << DMAC_BUSYCH_BUSYCH29_Pos) -#define DMAC_BUSYCH_BUSYCH30_Pos 30 /**< \brief (DMAC_BUSYCH) Busy Channel 30 */ -#define DMAC_BUSYCH_BUSYCH30 (_U_(1) << DMAC_BUSYCH_BUSYCH30_Pos) -#define DMAC_BUSYCH_BUSYCH31_Pos 31 /**< \brief (DMAC_BUSYCH) Busy Channel 31 */ -#define DMAC_BUSYCH_BUSYCH31 (_U_(1) << DMAC_BUSYCH_BUSYCH31_Pos) -#define DMAC_BUSYCH_BUSYCH_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel x */ -#define DMAC_BUSYCH_BUSYCH_Msk (_U_(0xFFFFFFFF) << DMAC_BUSYCH_BUSYCH_Pos) -#define DMAC_BUSYCH_BUSYCH(value) (DMAC_BUSYCH_BUSYCH_Msk & ((value) << DMAC_BUSYCH_BUSYCH_Pos)) -#define DMAC_BUSYCH_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_BUSYCH) MASK Register */ - -/* -------- DMAC_PENDCH : (DMAC Offset: 0x2C) (R/ 32) Pending Channels -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t PENDCH0:1; /*!< bit: 0 Pending Channel 0 */ - uint32_t PENDCH1:1; /*!< bit: 1 Pending Channel 1 */ - uint32_t PENDCH2:1; /*!< bit: 2 Pending Channel 2 */ - uint32_t PENDCH3:1; /*!< bit: 3 Pending Channel 3 */ - uint32_t PENDCH4:1; /*!< bit: 4 Pending Channel 4 */ - uint32_t PENDCH5:1; /*!< bit: 5 Pending Channel 5 */ - uint32_t PENDCH6:1; /*!< bit: 6 Pending Channel 6 */ - uint32_t PENDCH7:1; /*!< bit: 7 Pending Channel 7 */ - uint32_t PENDCH8:1; /*!< bit: 8 Pending Channel 8 */ - uint32_t PENDCH9:1; /*!< bit: 9 Pending Channel 9 */ - uint32_t PENDCH10:1; /*!< bit: 10 Pending Channel 10 */ - uint32_t PENDCH11:1; /*!< bit: 11 Pending Channel 11 */ - uint32_t PENDCH12:1; /*!< bit: 12 Pending Channel 12 */ - uint32_t PENDCH13:1; /*!< bit: 13 Pending Channel 13 */ - uint32_t PENDCH14:1; /*!< bit: 14 Pending Channel 14 */ - uint32_t PENDCH15:1; /*!< bit: 15 Pending Channel 15 */ - uint32_t PENDCH16:1; /*!< bit: 16 Pending Channel 16 */ - uint32_t PENDCH17:1; /*!< bit: 17 Pending Channel 17 */ - uint32_t PENDCH18:1; /*!< bit: 18 Pending Channel 18 */ - uint32_t PENDCH19:1; /*!< bit: 19 Pending Channel 19 */ - uint32_t PENDCH20:1; /*!< bit: 20 Pending Channel 20 */ - uint32_t PENDCH21:1; /*!< bit: 21 Pending Channel 21 */ - uint32_t PENDCH22:1; /*!< bit: 22 Pending Channel 22 */ - uint32_t PENDCH23:1; /*!< bit: 23 Pending Channel 23 */ - uint32_t PENDCH24:1; /*!< bit: 24 Pending Channel 24 */ - uint32_t PENDCH25:1; /*!< bit: 25 Pending Channel 25 */ - uint32_t PENDCH26:1; /*!< bit: 26 Pending Channel 26 */ - uint32_t PENDCH27:1; /*!< bit: 27 Pending Channel 27 */ - uint32_t PENDCH28:1; /*!< bit: 28 Pending Channel 28 */ - uint32_t PENDCH29:1; /*!< bit: 29 Pending Channel 29 */ - uint32_t PENDCH30:1; /*!< bit: 30 Pending Channel 30 */ - uint32_t PENDCH31:1; /*!< bit: 31 Pending Channel 31 */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t PENDCH:32; /*!< bit: 0..31 Pending Channel x */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_PENDCH_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_PENDCH_OFFSET 0x2C /**< \brief (DMAC_PENDCH offset) Pending Channels */ -#define DMAC_PENDCH_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_PENDCH reset_value) Pending Channels */ - -#define DMAC_PENDCH_PENDCH0_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel 0 */ -#define DMAC_PENDCH_PENDCH0 (_U_(1) << DMAC_PENDCH_PENDCH0_Pos) -#define DMAC_PENDCH_PENDCH1_Pos 1 /**< \brief (DMAC_PENDCH) Pending Channel 1 */ -#define DMAC_PENDCH_PENDCH1 (_U_(1) << DMAC_PENDCH_PENDCH1_Pos) -#define DMAC_PENDCH_PENDCH2_Pos 2 /**< \brief (DMAC_PENDCH) Pending Channel 2 */ -#define DMAC_PENDCH_PENDCH2 (_U_(1) << DMAC_PENDCH_PENDCH2_Pos) -#define DMAC_PENDCH_PENDCH3_Pos 3 /**< \brief (DMAC_PENDCH) Pending Channel 3 */ -#define DMAC_PENDCH_PENDCH3 (_U_(1) << DMAC_PENDCH_PENDCH3_Pos) -#define DMAC_PENDCH_PENDCH4_Pos 4 /**< \brief (DMAC_PENDCH) Pending Channel 4 */ -#define DMAC_PENDCH_PENDCH4 (_U_(1) << DMAC_PENDCH_PENDCH4_Pos) -#define DMAC_PENDCH_PENDCH5_Pos 5 /**< \brief (DMAC_PENDCH) Pending Channel 5 */ -#define DMAC_PENDCH_PENDCH5 (_U_(1) << DMAC_PENDCH_PENDCH5_Pos) -#define DMAC_PENDCH_PENDCH6_Pos 6 /**< \brief (DMAC_PENDCH) Pending Channel 6 */ -#define DMAC_PENDCH_PENDCH6 (_U_(1) << DMAC_PENDCH_PENDCH6_Pos) -#define DMAC_PENDCH_PENDCH7_Pos 7 /**< \brief (DMAC_PENDCH) Pending Channel 7 */ -#define DMAC_PENDCH_PENDCH7 (_U_(1) << DMAC_PENDCH_PENDCH7_Pos) -#define DMAC_PENDCH_PENDCH8_Pos 8 /**< \brief (DMAC_PENDCH) Pending Channel 8 */ -#define DMAC_PENDCH_PENDCH8 (_U_(1) << DMAC_PENDCH_PENDCH8_Pos) -#define DMAC_PENDCH_PENDCH9_Pos 9 /**< \brief (DMAC_PENDCH) Pending Channel 9 */ -#define DMAC_PENDCH_PENDCH9 (_U_(1) << DMAC_PENDCH_PENDCH9_Pos) -#define DMAC_PENDCH_PENDCH10_Pos 10 /**< \brief (DMAC_PENDCH) Pending Channel 10 */ -#define DMAC_PENDCH_PENDCH10 (_U_(1) << DMAC_PENDCH_PENDCH10_Pos) -#define DMAC_PENDCH_PENDCH11_Pos 11 /**< \brief (DMAC_PENDCH) Pending Channel 11 */ -#define DMAC_PENDCH_PENDCH11 (_U_(1) << DMAC_PENDCH_PENDCH11_Pos) -#define DMAC_PENDCH_PENDCH12_Pos 12 /**< \brief (DMAC_PENDCH) Pending Channel 12 */ -#define DMAC_PENDCH_PENDCH12 (_U_(1) << DMAC_PENDCH_PENDCH12_Pos) -#define DMAC_PENDCH_PENDCH13_Pos 13 /**< \brief (DMAC_PENDCH) Pending Channel 13 */ -#define DMAC_PENDCH_PENDCH13 (_U_(1) << DMAC_PENDCH_PENDCH13_Pos) -#define DMAC_PENDCH_PENDCH14_Pos 14 /**< \brief (DMAC_PENDCH) Pending Channel 14 */ -#define DMAC_PENDCH_PENDCH14 (_U_(1) << DMAC_PENDCH_PENDCH14_Pos) -#define DMAC_PENDCH_PENDCH15_Pos 15 /**< \brief (DMAC_PENDCH) Pending Channel 15 */ -#define DMAC_PENDCH_PENDCH15 (_U_(1) << DMAC_PENDCH_PENDCH15_Pos) -#define DMAC_PENDCH_PENDCH16_Pos 16 /**< \brief (DMAC_PENDCH) Pending Channel 16 */ -#define DMAC_PENDCH_PENDCH16 (_U_(1) << DMAC_PENDCH_PENDCH16_Pos) -#define DMAC_PENDCH_PENDCH17_Pos 17 /**< \brief (DMAC_PENDCH) Pending Channel 17 */ -#define DMAC_PENDCH_PENDCH17 (_U_(1) << DMAC_PENDCH_PENDCH17_Pos) -#define DMAC_PENDCH_PENDCH18_Pos 18 /**< \brief (DMAC_PENDCH) Pending Channel 18 */ -#define DMAC_PENDCH_PENDCH18 (_U_(1) << DMAC_PENDCH_PENDCH18_Pos) -#define DMAC_PENDCH_PENDCH19_Pos 19 /**< \brief (DMAC_PENDCH) Pending Channel 19 */ -#define DMAC_PENDCH_PENDCH19 (_U_(1) << DMAC_PENDCH_PENDCH19_Pos) -#define DMAC_PENDCH_PENDCH20_Pos 20 /**< \brief (DMAC_PENDCH) Pending Channel 20 */ -#define DMAC_PENDCH_PENDCH20 (_U_(1) << DMAC_PENDCH_PENDCH20_Pos) -#define DMAC_PENDCH_PENDCH21_Pos 21 /**< \brief (DMAC_PENDCH) Pending Channel 21 */ -#define DMAC_PENDCH_PENDCH21 (_U_(1) << DMAC_PENDCH_PENDCH21_Pos) -#define DMAC_PENDCH_PENDCH22_Pos 22 /**< \brief (DMAC_PENDCH) Pending Channel 22 */ -#define DMAC_PENDCH_PENDCH22 (_U_(1) << DMAC_PENDCH_PENDCH22_Pos) -#define DMAC_PENDCH_PENDCH23_Pos 23 /**< \brief (DMAC_PENDCH) Pending Channel 23 */ -#define DMAC_PENDCH_PENDCH23 (_U_(1) << DMAC_PENDCH_PENDCH23_Pos) -#define DMAC_PENDCH_PENDCH24_Pos 24 /**< \brief (DMAC_PENDCH) Pending Channel 24 */ -#define DMAC_PENDCH_PENDCH24 (_U_(1) << DMAC_PENDCH_PENDCH24_Pos) -#define DMAC_PENDCH_PENDCH25_Pos 25 /**< \brief (DMAC_PENDCH) Pending Channel 25 */ -#define DMAC_PENDCH_PENDCH25 (_U_(1) << DMAC_PENDCH_PENDCH25_Pos) -#define DMAC_PENDCH_PENDCH26_Pos 26 /**< \brief (DMAC_PENDCH) Pending Channel 26 */ -#define DMAC_PENDCH_PENDCH26 (_U_(1) << DMAC_PENDCH_PENDCH26_Pos) -#define DMAC_PENDCH_PENDCH27_Pos 27 /**< \brief (DMAC_PENDCH) Pending Channel 27 */ -#define DMAC_PENDCH_PENDCH27 (_U_(1) << DMAC_PENDCH_PENDCH27_Pos) -#define DMAC_PENDCH_PENDCH28_Pos 28 /**< \brief (DMAC_PENDCH) Pending Channel 28 */ -#define DMAC_PENDCH_PENDCH28 (_U_(1) << DMAC_PENDCH_PENDCH28_Pos) -#define DMAC_PENDCH_PENDCH29_Pos 29 /**< \brief (DMAC_PENDCH) Pending Channel 29 */ -#define DMAC_PENDCH_PENDCH29 (_U_(1) << DMAC_PENDCH_PENDCH29_Pos) -#define DMAC_PENDCH_PENDCH30_Pos 30 /**< \brief (DMAC_PENDCH) Pending Channel 30 */ -#define DMAC_PENDCH_PENDCH30 (_U_(1) << DMAC_PENDCH_PENDCH30_Pos) -#define DMAC_PENDCH_PENDCH31_Pos 31 /**< \brief (DMAC_PENDCH) Pending Channel 31 */ -#define DMAC_PENDCH_PENDCH31 (_U_(1) << DMAC_PENDCH_PENDCH31_Pos) -#define DMAC_PENDCH_PENDCH_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel x */ -#define DMAC_PENDCH_PENDCH_Msk (_U_(0xFFFFFFFF) << DMAC_PENDCH_PENDCH_Pos) -#define DMAC_PENDCH_PENDCH(value) (DMAC_PENDCH_PENDCH_Msk & ((value) << DMAC_PENDCH_PENDCH_Pos)) -#define DMAC_PENDCH_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_PENDCH) MASK Register */ - -/* -------- DMAC_ACTIVE : (DMAC Offset: 0x30) (R/ 32) Active Channel and Levels -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t LVLEX0:1; /*!< bit: 0 Level 0 Channel Trigger Request Executing */ - uint32_t LVLEX1:1; /*!< bit: 1 Level 1 Channel Trigger Request Executing */ - uint32_t LVLEX2:1; /*!< bit: 2 Level 2 Channel Trigger Request Executing */ - uint32_t LVLEX3:1; /*!< bit: 3 Level 3 Channel Trigger Request Executing */ - uint32_t :4; /*!< bit: 4.. 7 Reserved */ - uint32_t ID:5; /*!< bit: 8..12 Active Channel ID */ - uint32_t :2; /*!< bit: 13..14 Reserved */ - uint32_t ABUSY:1; /*!< bit: 15 Active Channel Busy */ - uint32_t BTCNT:16; /*!< bit: 16..31 Active Channel Block Transfer Count */ - } bit; /*!< Structure used for bit access */ - struct { - uint32_t LVLEX:4; /*!< bit: 0.. 3 Level x Channel Trigger Request Executing */ - uint32_t :28; /*!< bit: 4..31 Reserved */ - } vec; /*!< Structure used for vec access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_ACTIVE_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_ACTIVE_OFFSET 0x30 /**< \brief (DMAC_ACTIVE offset) Active Channel and Levels */ -#define DMAC_ACTIVE_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_ACTIVE reset_value) Active Channel and Levels */ - -#define DMAC_ACTIVE_LVLEX0_Pos 0 /**< \brief (DMAC_ACTIVE) Level 0 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX0 (_U_(1) << DMAC_ACTIVE_LVLEX0_Pos) -#define DMAC_ACTIVE_LVLEX1_Pos 1 /**< \brief (DMAC_ACTIVE) Level 1 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX1 (_U_(1) << DMAC_ACTIVE_LVLEX1_Pos) -#define DMAC_ACTIVE_LVLEX2_Pos 2 /**< \brief (DMAC_ACTIVE) Level 2 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX2 (_U_(1) << DMAC_ACTIVE_LVLEX2_Pos) -#define DMAC_ACTIVE_LVLEX3_Pos 3 /**< \brief (DMAC_ACTIVE) Level 3 Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX3 (_U_(1) << DMAC_ACTIVE_LVLEX3_Pos) -#define DMAC_ACTIVE_LVLEX_Pos 0 /**< \brief (DMAC_ACTIVE) Level x Channel Trigger Request Executing */ -#define DMAC_ACTIVE_LVLEX_Msk (_U_(0xF) << DMAC_ACTIVE_LVLEX_Pos) -#define DMAC_ACTIVE_LVLEX(value) (DMAC_ACTIVE_LVLEX_Msk & ((value) << DMAC_ACTIVE_LVLEX_Pos)) -#define DMAC_ACTIVE_ID_Pos 8 /**< \brief (DMAC_ACTIVE) Active Channel ID */ -#define DMAC_ACTIVE_ID_Msk (_U_(0x1F) << DMAC_ACTIVE_ID_Pos) -#define DMAC_ACTIVE_ID(value) (DMAC_ACTIVE_ID_Msk & ((value) << DMAC_ACTIVE_ID_Pos)) -#define DMAC_ACTIVE_ABUSY_Pos 15 /**< \brief (DMAC_ACTIVE) Active Channel Busy */ -#define DMAC_ACTIVE_ABUSY (_U_(0x1) << DMAC_ACTIVE_ABUSY_Pos) -#define DMAC_ACTIVE_BTCNT_Pos 16 /**< \brief (DMAC_ACTIVE) Active Channel Block Transfer Count */ -#define DMAC_ACTIVE_BTCNT_Msk (_U_(0xFFFF) << DMAC_ACTIVE_BTCNT_Pos) -#define DMAC_ACTIVE_BTCNT(value) (DMAC_ACTIVE_BTCNT_Msk & ((value) << DMAC_ACTIVE_BTCNT_Pos)) -#define DMAC_ACTIVE_MASK _U_(0xFFFF9F0F) /**< \brief (DMAC_ACTIVE) MASK Register */ - -/* -------- DMAC_BASEADDR : (DMAC Offset: 0x34) (R/W 32) Descriptor Memory Section Base Address -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t BASEADDR:32; /*!< bit: 0..31 Descriptor Memory Base Address */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_BASEADDR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_BASEADDR_OFFSET 0x34 /**< \brief (DMAC_BASEADDR offset) Descriptor Memory Section Base Address */ -#define DMAC_BASEADDR_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_BASEADDR reset_value) Descriptor Memory Section Base Address */ - -#define DMAC_BASEADDR_BASEADDR_Pos 0 /**< \brief (DMAC_BASEADDR) Descriptor Memory Base Address */ -#define DMAC_BASEADDR_BASEADDR_Msk (_U_(0xFFFFFFFF) << DMAC_BASEADDR_BASEADDR_Pos) -#define DMAC_BASEADDR_BASEADDR(value) (DMAC_BASEADDR_BASEADDR_Msk & ((value) << DMAC_BASEADDR_BASEADDR_Pos)) -#define DMAC_BASEADDR_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_BASEADDR) MASK Register */ - -/* -------- DMAC_WRBADDR : (DMAC Offset: 0x38) (R/W 32) Write-Back Memory Section Base Address -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t WRBADDR:32; /*!< bit: 0..31 Write-Back Memory Base Address */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_WRBADDR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_WRBADDR_OFFSET 0x38 /**< \brief (DMAC_WRBADDR offset) Write-Back Memory Section Base Address */ -#define DMAC_WRBADDR_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_WRBADDR reset_value) Write-Back Memory Section Base Address */ - -#define DMAC_WRBADDR_WRBADDR_Pos 0 /**< \brief (DMAC_WRBADDR) Write-Back Memory Base Address */ -#define DMAC_WRBADDR_WRBADDR_Msk (_U_(0xFFFFFFFF) << DMAC_WRBADDR_WRBADDR_Pos) -#define DMAC_WRBADDR_WRBADDR(value) (DMAC_WRBADDR_WRBADDR_Msk & ((value) << DMAC_WRBADDR_WRBADDR_Pos)) -#define DMAC_WRBADDR_MASK _U_(0xFFFFFFFF) /**< \brief (DMAC_WRBADDR) MASK Register */ - -/* -------- DMAC_CHCTRLA : (DMAC Offset: 0x40) (R/W 32) CHANNEL Channel n Control A -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint32_t SWRST:1; /*!< bit: 0 Channel Software Reset */ - uint32_t ENABLE:1; /*!< bit: 1 Channel Enable */ - uint32_t :4; /*!< bit: 2.. 5 Reserved */ - uint32_t RUNSTDBY:1; /*!< bit: 6 Channel Run in Standby */ - uint32_t :1; /*!< bit: 7 Reserved */ - uint32_t TRIGSRC:7; /*!< bit: 8..14 Trigger Source */ - uint32_t :5; /*!< bit: 15..19 Reserved */ - uint32_t TRIGACT:2; /*!< bit: 20..21 Trigger Action */ - uint32_t :2; /*!< bit: 22..23 Reserved */ - uint32_t BURSTLEN:4; /*!< bit: 24..27 Burst Length */ - uint32_t THRESHOLD:2; /*!< bit: 28..29 FIFO Threshold */ - uint32_t :2; /*!< bit: 30..31 Reserved */ - } bit; /*!< Structure used for bit access */ - uint32_t reg; /*!< Type used for register access */ -} DMAC_CHCTRLA_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHCTRLA_OFFSET 0x40 /**< \brief (DMAC_CHCTRLA offset) Channel n Control A */ -#define DMAC_CHCTRLA_RESETVALUE _U_(0x00000000) /**< \brief (DMAC_CHCTRLA reset_value) Channel n Control A */ - -#define DMAC_CHCTRLA_SWRST_Pos 0 /**< \brief (DMAC_CHCTRLA) Channel Software Reset */ -#define DMAC_CHCTRLA_SWRST (_U_(0x1) << DMAC_CHCTRLA_SWRST_Pos) -#define DMAC_CHCTRLA_ENABLE_Pos 1 /**< \brief (DMAC_CHCTRLA) Channel Enable */ -#define DMAC_CHCTRLA_ENABLE (_U_(0x1) << DMAC_CHCTRLA_ENABLE_Pos) -#define DMAC_CHCTRLA_RUNSTDBY_Pos 6 /**< \brief (DMAC_CHCTRLA) Channel Run in Standby */ -#define DMAC_CHCTRLA_RUNSTDBY (_U_(0x1) << DMAC_CHCTRLA_RUNSTDBY_Pos) -#define DMAC_CHCTRLA_TRIGSRC_Pos 8 /**< \brief (DMAC_CHCTRLA) Trigger Source */ -#define DMAC_CHCTRLA_TRIGSRC_Msk (_U_(0x7F) << DMAC_CHCTRLA_TRIGSRC_Pos) -#define DMAC_CHCTRLA_TRIGSRC(value) (DMAC_CHCTRLA_TRIGSRC_Msk & ((value) << DMAC_CHCTRLA_TRIGSRC_Pos)) -#define DMAC_CHCTRLA_TRIGSRC_DISABLE_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) Only software/event triggers */ -#define DMAC_CHCTRLA_TRIGSRC_DISABLE (DMAC_CHCTRLA_TRIGSRC_DISABLE_Val << DMAC_CHCTRLA_TRIGSRC_Pos) -#define DMAC_CHCTRLA_TRIGACT_Pos 20 /**< \brief (DMAC_CHCTRLA) Trigger Action */ -#define DMAC_CHCTRLA_TRIGACT_Msk (_U_(0x3) << DMAC_CHCTRLA_TRIGACT_Pos) -#define DMAC_CHCTRLA_TRIGACT(value) (DMAC_CHCTRLA_TRIGACT_Msk & ((value) << DMAC_CHCTRLA_TRIGACT_Pos)) -#define DMAC_CHCTRLA_TRIGACT_BLOCK_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) One trigger required for each block transfer */ -#define DMAC_CHCTRLA_TRIGACT_BURST_Val _U_(0x2) /**< \brief (DMAC_CHCTRLA) One trigger required for each burst transfer */ -#define DMAC_CHCTRLA_TRIGACT_TRANSACTION_Val _U_(0x3) /**< \brief (DMAC_CHCTRLA) One trigger required for each transaction */ -#define DMAC_CHCTRLA_TRIGACT_BLOCK (DMAC_CHCTRLA_TRIGACT_BLOCK_Val << DMAC_CHCTRLA_TRIGACT_Pos) -#define DMAC_CHCTRLA_TRIGACT_BURST (DMAC_CHCTRLA_TRIGACT_BURST_Val << DMAC_CHCTRLA_TRIGACT_Pos) -#define DMAC_CHCTRLA_TRIGACT_TRANSACTION (DMAC_CHCTRLA_TRIGACT_TRANSACTION_Val << DMAC_CHCTRLA_TRIGACT_Pos) -#define DMAC_CHCTRLA_BURSTLEN_Pos 24 /**< \brief (DMAC_CHCTRLA) Burst Length */ -#define DMAC_CHCTRLA_BURSTLEN_Msk (_U_(0xF) << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN(value) (DMAC_CHCTRLA_BURSTLEN_Msk & ((value) << DMAC_CHCTRLA_BURSTLEN_Pos)) -#define DMAC_CHCTRLA_BURSTLEN_SINGLE_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) Single-beat burst length */ -#define DMAC_CHCTRLA_BURSTLEN_2BEAT_Val _U_(0x1) /**< \brief (DMAC_CHCTRLA) 2-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_3BEAT_Val _U_(0x2) /**< \brief (DMAC_CHCTRLA) 3-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_4BEAT_Val _U_(0x3) /**< \brief (DMAC_CHCTRLA) 4-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_5BEAT_Val _U_(0x4) /**< \brief (DMAC_CHCTRLA) 5-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_6BEAT_Val _U_(0x5) /**< \brief (DMAC_CHCTRLA) 6-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_7BEAT_Val _U_(0x6) /**< \brief (DMAC_CHCTRLA) 7-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_8BEAT_Val _U_(0x7) /**< \brief (DMAC_CHCTRLA) 8-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_9BEAT_Val _U_(0x8) /**< \brief (DMAC_CHCTRLA) 9-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_10BEAT_Val _U_(0x9) /**< \brief (DMAC_CHCTRLA) 10-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_11BEAT_Val _U_(0xA) /**< \brief (DMAC_CHCTRLA) 11-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_12BEAT_Val _U_(0xB) /**< \brief (DMAC_CHCTRLA) 12-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_13BEAT_Val _U_(0xC) /**< \brief (DMAC_CHCTRLA) 13-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_14BEAT_Val _U_(0xD) /**< \brief (DMAC_CHCTRLA) 14-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_15BEAT_Val _U_(0xE) /**< \brief (DMAC_CHCTRLA) 15-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_16BEAT_Val _U_(0xF) /**< \brief (DMAC_CHCTRLA) 16-beats burst length */ -#define DMAC_CHCTRLA_BURSTLEN_SINGLE (DMAC_CHCTRLA_BURSTLEN_SINGLE_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_2BEAT (DMAC_CHCTRLA_BURSTLEN_2BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_3BEAT (DMAC_CHCTRLA_BURSTLEN_3BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_4BEAT (DMAC_CHCTRLA_BURSTLEN_4BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_5BEAT (DMAC_CHCTRLA_BURSTLEN_5BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_6BEAT (DMAC_CHCTRLA_BURSTLEN_6BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_7BEAT (DMAC_CHCTRLA_BURSTLEN_7BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_8BEAT (DMAC_CHCTRLA_BURSTLEN_8BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_9BEAT (DMAC_CHCTRLA_BURSTLEN_9BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_10BEAT (DMAC_CHCTRLA_BURSTLEN_10BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_11BEAT (DMAC_CHCTRLA_BURSTLEN_11BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_12BEAT (DMAC_CHCTRLA_BURSTLEN_12BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_13BEAT (DMAC_CHCTRLA_BURSTLEN_13BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_14BEAT (DMAC_CHCTRLA_BURSTLEN_14BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_15BEAT (DMAC_CHCTRLA_BURSTLEN_15BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_BURSTLEN_16BEAT (DMAC_CHCTRLA_BURSTLEN_16BEAT_Val << DMAC_CHCTRLA_BURSTLEN_Pos) -#define DMAC_CHCTRLA_THRESHOLD_Pos 28 /**< \brief (DMAC_CHCTRLA) FIFO Threshold */ -#define DMAC_CHCTRLA_THRESHOLD_Msk (_U_(0x3) << DMAC_CHCTRLA_THRESHOLD_Pos) -#define DMAC_CHCTRLA_THRESHOLD(value) (DMAC_CHCTRLA_THRESHOLD_Msk & ((value) << DMAC_CHCTRLA_THRESHOLD_Pos)) -#define DMAC_CHCTRLA_THRESHOLD_1BEAT_Val _U_(0x0) /**< \brief (DMAC_CHCTRLA) Destination write starts after each beat source address read */ -#define DMAC_CHCTRLA_THRESHOLD_2BEATS_Val _U_(0x1) /**< \brief (DMAC_CHCTRLA) Destination write starts after 2-beats source address read */ -#define DMAC_CHCTRLA_THRESHOLD_4BEATS_Val _U_(0x2) /**< \brief (DMAC_CHCTRLA) Destination write starts after 4-beats source address read */ -#define DMAC_CHCTRLA_THRESHOLD_8BEATS_Val _U_(0x3) /**< \brief (DMAC_CHCTRLA) Destination write starts after 8-beats source address read */ -#define DMAC_CHCTRLA_THRESHOLD_1BEAT (DMAC_CHCTRLA_THRESHOLD_1BEAT_Val << DMAC_CHCTRLA_THRESHOLD_Pos) -#define DMAC_CHCTRLA_THRESHOLD_2BEATS (DMAC_CHCTRLA_THRESHOLD_2BEATS_Val << DMAC_CHCTRLA_THRESHOLD_Pos) -#define DMAC_CHCTRLA_THRESHOLD_4BEATS (DMAC_CHCTRLA_THRESHOLD_4BEATS_Val << DMAC_CHCTRLA_THRESHOLD_Pos) -#define DMAC_CHCTRLA_THRESHOLD_8BEATS (DMAC_CHCTRLA_THRESHOLD_8BEATS_Val << DMAC_CHCTRLA_THRESHOLD_Pos) -#define DMAC_CHCTRLA_MASK _U_(0x3F307F43) /**< \brief (DMAC_CHCTRLA) MASK Register */ - -/* -------- DMAC_CHCTRLB : (DMAC Offset: 0x44) (R/W 8) CHANNEL Channel n Control B -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t CMD:2; /*!< bit: 0.. 1 Software Command */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHCTRLB_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHCTRLB_OFFSET 0x44 /**< \brief (DMAC_CHCTRLB offset) Channel n Control B */ -#define DMAC_CHCTRLB_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHCTRLB reset_value) Channel n Control B */ - -#define DMAC_CHCTRLB_CMD_Pos 0 /**< \brief (DMAC_CHCTRLB) Software Command */ -#define DMAC_CHCTRLB_CMD_Msk (_U_(0x3) << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_CMD(value) (DMAC_CHCTRLB_CMD_Msk & ((value) << DMAC_CHCTRLB_CMD_Pos)) -#define DMAC_CHCTRLB_CMD_NOACT_Val _U_(0x0) /**< \brief (DMAC_CHCTRLB) No action */ -#define DMAC_CHCTRLB_CMD_SUSPEND_Val _U_(0x1) /**< \brief (DMAC_CHCTRLB) Channel suspend operation */ -#define DMAC_CHCTRLB_CMD_RESUME_Val _U_(0x2) /**< \brief (DMAC_CHCTRLB) Channel resume operation */ -#define DMAC_CHCTRLB_CMD_NOACT (DMAC_CHCTRLB_CMD_NOACT_Val << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_CMD_SUSPEND (DMAC_CHCTRLB_CMD_SUSPEND_Val << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_CMD_RESUME (DMAC_CHCTRLB_CMD_RESUME_Val << DMAC_CHCTRLB_CMD_Pos) -#define DMAC_CHCTRLB_MASK _U_(0x03) /**< \brief (DMAC_CHCTRLB) MASK Register */ - -/* -------- DMAC_CHPRILVL : (DMAC Offset: 0x45) (R/W 8) CHANNEL Channel n Priority Level -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t PRILVL:2; /*!< bit: 0.. 1 Channel Priority Level */ - uint8_t :6; /*!< bit: 2.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHPRILVL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHPRILVL_OFFSET 0x45 /**< \brief (DMAC_CHPRILVL offset) Channel n Priority Level */ -#define DMAC_CHPRILVL_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHPRILVL reset_value) Channel n Priority Level */ - -#define DMAC_CHPRILVL_PRILVL_Pos 0 /**< \brief (DMAC_CHPRILVL) Channel Priority Level */ -#define DMAC_CHPRILVL_PRILVL_Msk (_U_(0x3) << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL(value) (DMAC_CHPRILVL_PRILVL_Msk & ((value) << DMAC_CHPRILVL_PRILVL_Pos)) -#define DMAC_CHPRILVL_PRILVL_LVL0_Val _U_(0x0) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 0 (Lowest Level) */ -#define DMAC_CHPRILVL_PRILVL_LVL1_Val _U_(0x1) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 1 */ -#define DMAC_CHPRILVL_PRILVL_LVL2_Val _U_(0x2) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 2 */ -#define DMAC_CHPRILVL_PRILVL_LVL3_Val _U_(0x3) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 3 */ -#define DMAC_CHPRILVL_PRILVL_LVL4_Val _U_(0x4) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 4 */ -#define DMAC_CHPRILVL_PRILVL_LVL5_Val _U_(0x5) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 5 */ -#define DMAC_CHPRILVL_PRILVL_LVL6_Val _U_(0x6) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 6 */ -#define DMAC_CHPRILVL_PRILVL_LVL7_Val _U_(0x7) /**< \brief (DMAC_CHPRILVL) Channel Priority Level 7 (Highest Level) */ -#define DMAC_CHPRILVL_PRILVL_LVL0 (DMAC_CHPRILVL_PRILVL_LVL0_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL1 (DMAC_CHPRILVL_PRILVL_LVL1_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL2 (DMAC_CHPRILVL_PRILVL_LVL2_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL3 (DMAC_CHPRILVL_PRILVL_LVL3_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL4 (DMAC_CHPRILVL_PRILVL_LVL4_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL5 (DMAC_CHPRILVL_PRILVL_LVL5_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL6 (DMAC_CHPRILVL_PRILVL_LVL6_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_PRILVL_LVL7 (DMAC_CHPRILVL_PRILVL_LVL7_Val << DMAC_CHPRILVL_PRILVL_Pos) -#define DMAC_CHPRILVL_MASK _U_(0x03) /**< \brief (DMAC_CHPRILVL) MASK Register */ - -/* -------- DMAC_CHEVCTRL : (DMAC Offset: 0x46) (R/W 8) CHANNEL Channel n Event Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t EVACT:3; /*!< bit: 0.. 2 Channel Event Input Action */ - uint8_t :1; /*!< bit: 3 Reserved */ - uint8_t EVOMODE:2; /*!< bit: 4.. 5 Channel Event Output Mode */ - uint8_t EVIE:1; /*!< bit: 6 Channel Event Input Enable */ - uint8_t EVOE:1; /*!< bit: 7 Channel Event Output Enable */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHEVCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHEVCTRL_OFFSET 0x46 /**< \brief (DMAC_CHEVCTRL offset) Channel n Event Control */ -#define DMAC_CHEVCTRL_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHEVCTRL reset_value) Channel n Event Control */ - -#define DMAC_CHEVCTRL_EVACT_Pos 0 /**< \brief (DMAC_CHEVCTRL) Channel Event Input Action */ -#define DMAC_CHEVCTRL_EVACT_Msk (_U_(0x7) << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT(value) (DMAC_CHEVCTRL_EVACT_Msk & ((value) << DMAC_CHEVCTRL_EVACT_Pos)) -#define DMAC_CHEVCTRL_EVACT_NOACT_Val _U_(0x0) /**< \brief (DMAC_CHEVCTRL) No action */ -#define DMAC_CHEVCTRL_EVACT_TRIG_Val _U_(0x1) /**< \brief (DMAC_CHEVCTRL) Transfer and periodic transfer trigger */ -#define DMAC_CHEVCTRL_EVACT_CTRIG_Val _U_(0x2) /**< \brief (DMAC_CHEVCTRL) Conditional transfer trigger */ -#define DMAC_CHEVCTRL_EVACT_CBLOCK_Val _U_(0x3) /**< \brief (DMAC_CHEVCTRL) Conditional block transfer */ -#define DMAC_CHEVCTRL_EVACT_SUSPEND_Val _U_(0x4) /**< \brief (DMAC_CHEVCTRL) Channel suspend operation */ -#define DMAC_CHEVCTRL_EVACT_RESUME_Val _U_(0x5) /**< \brief (DMAC_CHEVCTRL) Channel resume operation */ -#define DMAC_CHEVCTRL_EVACT_SSKIP_Val _U_(0x6) /**< \brief (DMAC_CHEVCTRL) Skip next block suspend action */ -#define DMAC_CHEVCTRL_EVACT_INCPRI_Val _U_(0x7) /**< \brief (DMAC_CHEVCTRL) Increase priority */ -#define DMAC_CHEVCTRL_EVACT_NOACT (DMAC_CHEVCTRL_EVACT_NOACT_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_TRIG (DMAC_CHEVCTRL_EVACT_TRIG_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_CTRIG (DMAC_CHEVCTRL_EVACT_CTRIG_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_CBLOCK (DMAC_CHEVCTRL_EVACT_CBLOCK_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_SUSPEND (DMAC_CHEVCTRL_EVACT_SUSPEND_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_RESUME (DMAC_CHEVCTRL_EVACT_RESUME_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_SSKIP (DMAC_CHEVCTRL_EVACT_SSKIP_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVACT_INCPRI (DMAC_CHEVCTRL_EVACT_INCPRI_Val << DMAC_CHEVCTRL_EVACT_Pos) -#define DMAC_CHEVCTRL_EVOMODE_Pos 4 /**< \brief (DMAC_CHEVCTRL) Channel Event Output Mode */ -#define DMAC_CHEVCTRL_EVOMODE_Msk (_U_(0x3) << DMAC_CHEVCTRL_EVOMODE_Pos) -#define DMAC_CHEVCTRL_EVOMODE(value) (DMAC_CHEVCTRL_EVOMODE_Msk & ((value) << DMAC_CHEVCTRL_EVOMODE_Pos)) -#define DMAC_CHEVCTRL_EVOMODE_DEFAULT_Val _U_(0x0) /**< \brief (DMAC_CHEVCTRL) Block event output selection. Refer to BTCTRL.EVOSEL for available selections. */ -#define DMAC_CHEVCTRL_EVOMODE_TRIGACT_Val _U_(0x1) /**< \brief (DMAC_CHEVCTRL) Ongoing trigger action */ -#define DMAC_CHEVCTRL_EVOMODE_DEFAULT (DMAC_CHEVCTRL_EVOMODE_DEFAULT_Val << DMAC_CHEVCTRL_EVOMODE_Pos) -#define DMAC_CHEVCTRL_EVOMODE_TRIGACT (DMAC_CHEVCTRL_EVOMODE_TRIGACT_Val << DMAC_CHEVCTRL_EVOMODE_Pos) -#define DMAC_CHEVCTRL_EVIE_Pos 6 /**< \brief (DMAC_CHEVCTRL) Channel Event Input Enable */ -#define DMAC_CHEVCTRL_EVIE (_U_(0x1) << DMAC_CHEVCTRL_EVIE_Pos) -#define DMAC_CHEVCTRL_EVOE_Pos 7 /**< \brief (DMAC_CHEVCTRL) Channel Event Output Enable */ -#define DMAC_CHEVCTRL_EVOE (_U_(0x1) << DMAC_CHEVCTRL_EVOE_Pos) -#define DMAC_CHEVCTRL_MASK _U_(0xF7) /**< \brief (DMAC_CHEVCTRL) MASK Register */ - -/* -------- DMAC_CHINTENCLR : (DMAC Offset: 0x4C) (R/W 8) CHANNEL Channel n Interrupt Enable Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error Interrupt Enable */ - uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete Interrupt Enable */ - uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHINTENCLR_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHINTENCLR_OFFSET 0x4C /**< \brief (DMAC_CHINTENCLR offset) Channel n Interrupt Enable Clear */ -#define DMAC_CHINTENCLR_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTENCLR reset_value) Channel n Interrupt Enable Clear */ - -#define DMAC_CHINTENCLR_TERR_Pos 0 /**< \brief (DMAC_CHINTENCLR) Channel Transfer Error Interrupt Enable */ -#define DMAC_CHINTENCLR_TERR (_U_(0x1) << DMAC_CHINTENCLR_TERR_Pos) -#define DMAC_CHINTENCLR_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENCLR) Channel Transfer Complete Interrupt Enable */ -#define DMAC_CHINTENCLR_TCMPL (_U_(0x1) << DMAC_CHINTENCLR_TCMPL_Pos) -#define DMAC_CHINTENCLR_SUSP_Pos 2 /**< \brief (DMAC_CHINTENCLR) Channel Suspend Interrupt Enable */ -#define DMAC_CHINTENCLR_SUSP (_U_(0x1) << DMAC_CHINTENCLR_SUSP_Pos) -#define DMAC_CHINTENCLR_MASK _U_(0x07) /**< \brief (DMAC_CHINTENCLR) MASK Register */ - -/* -------- DMAC_CHINTENSET : (DMAC Offset: 0x4D) (R/W 8) CHANNEL Channel n Interrupt Enable Set -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error Interrupt Enable */ - uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete Interrupt Enable */ - uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */ - uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHINTENSET_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHINTENSET_OFFSET 0x4D /**< \brief (DMAC_CHINTENSET offset) Channel n Interrupt Enable Set */ -#define DMAC_CHINTENSET_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTENSET reset_value) Channel n Interrupt Enable Set */ - -#define DMAC_CHINTENSET_TERR_Pos 0 /**< \brief (DMAC_CHINTENSET) Channel Transfer Error Interrupt Enable */ -#define DMAC_CHINTENSET_TERR (_U_(0x1) << DMAC_CHINTENSET_TERR_Pos) -#define DMAC_CHINTENSET_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENSET) Channel Transfer Complete Interrupt Enable */ -#define DMAC_CHINTENSET_TCMPL (_U_(0x1) << DMAC_CHINTENSET_TCMPL_Pos) -#define DMAC_CHINTENSET_SUSP_Pos 2 /**< \brief (DMAC_CHINTENSET) Channel Suspend Interrupt Enable */ -#define DMAC_CHINTENSET_SUSP (_U_(0x1) << DMAC_CHINTENSET_SUSP_Pos) -#define DMAC_CHINTENSET_MASK _U_(0x07) /**< \brief (DMAC_CHINTENSET) MASK Register */ - -/* -------- DMAC_CHINTFLAG : (DMAC Offset: 0x4E) (R/W 8) CHANNEL Channel n Interrupt Flag Status and Clear -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { // __I to avoid read-modify-write on write-to-clear register - struct { - __I uint8_t TERR:1; /*!< bit: 0 Channel Transfer Error */ - __I uint8_t TCMPL:1; /*!< bit: 1 Channel Transfer Complete */ - __I uint8_t SUSP:1; /*!< bit: 2 Channel Suspend */ - __I uint8_t :5; /*!< bit: 3.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHINTFLAG_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHINTFLAG_OFFSET 0x4E /**< \brief (DMAC_CHINTFLAG offset) Channel n Interrupt Flag Status and Clear */ -#define DMAC_CHINTFLAG_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHINTFLAG reset_value) Channel n Interrupt Flag Status and Clear */ - -#define DMAC_CHINTFLAG_TERR_Pos 0 /**< \brief (DMAC_CHINTFLAG) Channel Transfer Error */ -#define DMAC_CHINTFLAG_TERR (_U_(0x1) << DMAC_CHINTFLAG_TERR_Pos) -#define DMAC_CHINTFLAG_TCMPL_Pos 1 /**< \brief (DMAC_CHINTFLAG) Channel Transfer Complete */ -#define DMAC_CHINTFLAG_TCMPL (_U_(0x1) << DMAC_CHINTFLAG_TCMPL_Pos) -#define DMAC_CHINTFLAG_SUSP_Pos 2 /**< \brief (DMAC_CHINTFLAG) Channel Suspend */ -#define DMAC_CHINTFLAG_SUSP (_U_(0x1) << DMAC_CHINTFLAG_SUSP_Pos) -#define DMAC_CHINTFLAG_MASK _U_(0x07) /**< \brief (DMAC_CHINTFLAG) MASK Register */ - -/* -------- DMAC_CHSTATUS : (DMAC Offset: 0x4F) (R/W 8) CHANNEL Channel n Status -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint8_t PEND:1; /*!< bit: 0 Channel Pending */ - uint8_t BUSY:1; /*!< bit: 1 Channel Busy */ - uint8_t FERR:1; /*!< bit: 2 Channel Fetch Error */ - uint8_t CRCERR:1; /*!< bit: 3 Channel CRC Error */ - uint8_t :4; /*!< bit: 4.. 7 Reserved */ - } bit; /*!< Structure used for bit access */ - uint8_t reg; /*!< Type used for register access */ -} DMAC_CHSTATUS_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_CHSTATUS_OFFSET 0x4F /**< \brief (DMAC_CHSTATUS offset) Channel n Status */ -#define DMAC_CHSTATUS_RESETVALUE _U_(0x00) /**< \brief (DMAC_CHSTATUS reset_value) Channel n Status */ - -#define DMAC_CHSTATUS_PEND_Pos 0 /**< \brief (DMAC_CHSTATUS) Channel Pending */ -#define DMAC_CHSTATUS_PEND (_U_(0x1) << DMAC_CHSTATUS_PEND_Pos) -#define DMAC_CHSTATUS_BUSY_Pos 1 /**< \brief (DMAC_CHSTATUS) Channel Busy */ -#define DMAC_CHSTATUS_BUSY (_U_(0x1) << DMAC_CHSTATUS_BUSY_Pos) -#define DMAC_CHSTATUS_FERR_Pos 2 /**< \brief (DMAC_CHSTATUS) Channel Fetch Error */ -#define DMAC_CHSTATUS_FERR (_U_(0x1) << DMAC_CHSTATUS_FERR_Pos) -#define DMAC_CHSTATUS_CRCERR_Pos 3 /**< \brief (DMAC_CHSTATUS) Channel CRC Error */ -#define DMAC_CHSTATUS_CRCERR (_U_(0x1) << DMAC_CHSTATUS_CRCERR_Pos) -#define DMAC_CHSTATUS_MASK _U_(0x0F) /**< \brief (DMAC_CHSTATUS) MASK Register */ - -/* -------- DMAC_BTCTRL : (DMAC Offset: 0x00) (R/W 16) Block Transfer Control -------- */ -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -typedef union { - struct { - uint16_t VALID:1; /*!< bit: 0 Descriptor Valid */ - uint16_t EVOSEL:2; /*!< bit: 1.. 2 Block Event Output Selection */ - uint16_t BLOCKACT:2; /*!< bit: 3.. 4 Block Action */ - uint16_t :3; /*!< bit: 5.. 7 Reserved */ - uint16_t BEATSIZE:2; /*!< bit: 8.. 9 Beat Size */ - uint16_t SRCINC:1; /*!< bit: 10 Source Address Increment Enable */ - uint16_t DSTINC:1; /*!< bit: 11 Destination Address Increment Enable */ - uint16_t STEPSEL:1; /*!< bit: 12 Step Selection */ - uint16_t STEPSIZE:3; /*!< bit: 13..15 Address Increment Step Size */ - } bit; /*!< Structure used for bit access */ - uint16_t reg; /*!< Type used for register access */ -} DMAC_BTCTRL_Type; -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - -#define DMAC_BTCTRL_OFFSET 0x00 /**< \brief (DMAC_BTCTRL offset) Block Transfer Control */ -#define DMAC_BTCTRL_RESETVALUE _U_(0x0000) /**< \brief (DMAC_BTCTRL reset_value) Block Transfer Control */ - -#define DMAC_BTCTRL_VALID_Pos 0 /**< \brief (DMAC_BTCTRL) Descriptor Valid */ -#define DMAC_BTCTRL_VALID (_U_(0x1) << DMAC_BTCTRL_VALID_Pos) -#define DMAC_BTCTRL_EVOSEL_Pos 1 /**< \brief (DMAC_BTCTRL) Block Event Output Selection */ -#define DMAC_BTCTRL_EVOSEL_Msk (_U_(0x3) << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_EVOSEL(value) (DMAC_BTCTRL_EVOSEL_Msk & ((value) << DMAC_BTCTRL_EVOSEL_Pos)) -#define DMAC_BTCTRL_EVOSEL_DISABLE_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Event generation disabled */ -#define DMAC_BTCTRL_EVOSEL_BLOCK_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Block event strobe */ -#define DMAC_BTCTRL_EVOSEL_BURST_Val _U_(0x3) /**< \brief (DMAC_BTCTRL) Burst event strobe */ -#define DMAC_BTCTRL_EVOSEL_DISABLE (DMAC_BTCTRL_EVOSEL_DISABLE_Val << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_EVOSEL_BLOCK (DMAC_BTCTRL_EVOSEL_BLOCK_Val << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_EVOSEL_BURST (DMAC_BTCTRL_EVOSEL_BURST_Val << DMAC_BTCTRL_EVOSEL_Pos) -#define DMAC_BTCTRL_BLOCKACT_Pos 3 /**< \brief (DMAC_BTCTRL) Block Action */ -#define DMAC_BTCTRL_BLOCKACT_Msk (_U_(0x3) << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT(value) (DMAC_BTCTRL_BLOCKACT_Msk & ((value) << DMAC_BTCTRL_BLOCKACT_Pos)) -#define DMAC_BTCTRL_BLOCKACT_NOACT_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction */ -#define DMAC_BTCTRL_BLOCKACT_INT_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction and block interrupt */ -#define DMAC_BTCTRL_BLOCKACT_SUSPEND_Val _U_(0x2) /**< \brief (DMAC_BTCTRL) Channel suspend operation is completed */ -#define DMAC_BTCTRL_BLOCKACT_BOTH_Val _U_(0x3) /**< \brief (DMAC_BTCTRL) Both channel suspend operation and block interrupt */ -#define DMAC_BTCTRL_BLOCKACT_NOACT (DMAC_BTCTRL_BLOCKACT_NOACT_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT_INT (DMAC_BTCTRL_BLOCKACT_INT_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT_SUSPEND (DMAC_BTCTRL_BLOCKACT_SUSPEND_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BLOCKACT_BOTH (DMAC_BTCTRL_BLOCKACT_BOTH_Val << DMAC_BTCTRL_BLOCKACT_Pos) -#define DMAC_BTCTRL_BEATSIZE_Pos 8 /**< \brief (DMAC_BTCTRL) Beat Size */ -#define DMAC_BTCTRL_BEATSIZE_Msk (_U_(0x3) << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_BEATSIZE(value) (DMAC_BTCTRL_BEATSIZE_Msk & ((value) << DMAC_BTCTRL_BEATSIZE_Pos)) -#define DMAC_BTCTRL_BEATSIZE_BYTE_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) 8-bit bus transfer */ -#define DMAC_BTCTRL_BEATSIZE_HWORD_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) 16-bit bus transfer */ -#define DMAC_BTCTRL_BEATSIZE_WORD_Val _U_(0x2) /**< \brief (DMAC_BTCTRL) 32-bit bus transfer */ -#define DMAC_BTCTRL_BEATSIZE_BYTE (DMAC_BTCTRL_BEATSIZE_BYTE_Val << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_BEATSIZE_HWORD (DMAC_BTCTRL_BEATSIZE_HWORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_BEATSIZE_WORD (DMAC_BTCTRL_BEATSIZE_WORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) -#define DMAC_BTCTRL_SRCINC_Pos 10 /**< \brief (DMAC_BTCTRL) Source Address Increment Enable */ -#define DMAC_BTCTRL_SRCINC (_U_(0x1) << DMAC_BTCTRL_SRCINC_Pos) -#define DMAC_BTCTRL_DSTINC_Pos 11 /**< \brief (DMAC_BTCTRL) Destination Address Increment Enable */ -#define DMAC_BTCTRL_DSTINC (_U_(0x1) << DMAC_BTCTRL_DSTINC_Pos) -#define DMAC_BTCTRL_STEPSEL_Pos 12 /**< \brief (DMAC_BTCTRL) Step Selection */ -#define DMAC_BTCTRL_STEPSEL (_U_(0x1) << DMAC_BTCTRL_STEPSEL_Pos) -#define DMAC_BTCTRL_STEPSEL_DST_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Step size settings apply to the destination address */ -#define DMAC_BTCTRL_STEPSEL_SRC_Val _U_(0x1) /**< \brief (DMAC_BTCTRL) Step size settings apply to the source address */ -#define DMAC_BTCTRL_STEPSEL_DST (DMAC_BTCTRL_STEPSEL_DST_Val << DMAC_BTCTRL_STEPSEL_Pos) -#define DMAC_BTCTRL_STEPSEL_SRC (DMAC_BTCTRL_STEPSEL_SRC_Val << DMAC_BTCTRL_STEPSEL_Pos) -#define DMAC_BTCTRL_STEPSIZE_Pos 13 /**< \brief (DMAC_BTCTRL) Address Increment Step Size */ -#define DMAC_BTCTRL_STEPSIZE_Msk (_U_(0x7) << DMAC_BTCTRL_STEPSIZE_Pos) -#define DMAC_BTCTRL_STEPSIZE(value) (DMAC_BTCTRL_STEPSIZE_Msk & ((value) << DMAC_BTCTRL_STEPSIZE_Pos)) -#define DMAC_BTCTRL_STEPSIZE_X1_Val _U_(0x0) /**< \brief (DMAC_BTCTRL) Next ADDR = ADDR + (1< 8 bits, 1 -> 16 bits -#define USB_EPNUM 8 // parameter for rtl : max of ENDPOINT and PIPE NUM -#define USB_EPT_NUM 8 // Number of USB end points -#define USB_GCLK_ID 10 // Index of Generic Clock -#define USB_INITIAL_CONTROL_QOS 3 // CONTROL QOS RESET value -#define USB_INITIAL_DATA_QOS 3 // DATA QOS RESET value -#define USB_MISSING_SOF_DET_IMPLEMENTED 1 // 48 mHz xPLL feature implemented -#define USB_PIPE_NUM 8 // Number of USB pipes -#define USB_SYSTEM_CLOCK_IS_CKUSB 0 // Dual (1'b0) or Single (1'b1) clock system -#define USB_USB_2_AHB_FIFO_DEPTH 4 // bytes number, should be at least 2, and 2^n (4,8,16 ...) -#define USB_USB_2_AHB_RD_DATA_BITS 16 // 8, 16 or 32, here : 8-bits is required as UTMI interface should work in 8-bits mode -#define USB_USB_2_AHB_RD_THRESHOLD 2 // as soon as there are 16 bytes-free inside the fifo, ahb read transfer is requested -#define USB_USB_2_AHB_WR_DATA_BITS 8 // 8, 16 or 32 : here : 8-bits is required as UTMI interface should work in 8-bits mode - -#endif /* _SAMD51_USB_INSTANCE_ */ +/** + * \file + * + * \brief Instance description for USB + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_USB_INSTANCE_ +#define _SAMD51_USB_INSTANCE_ + +/* ========== Register definition for USB peripheral ========== */ +#if (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#define REG_USB_CTRLA (0x41000000) /**< \brief (USB) Control A */ +#define REG_USB_SYNCBUSY (0x41000002) /**< \brief (USB) Synchronization Busy */ +#define REG_USB_QOSCTRL (0x41000003) /**< \brief (USB) USB Quality Of Service */ +#define REG_USB_FSMSTATUS (0x4100000D) /**< \brief (USB) Finite State Machine Status */ +#define REG_USB_DESCADD (0x41000024) /**< \brief (USB) Descriptor Address */ +#define REG_USB_PADCAL (0x41000028) /**< \brief (USB) USB PAD Calibration */ +#define REG_USB_DEVICE_CTRLB (0x41000008) /**< \brief (USB) DEVICE Control B */ +#define REG_USB_DEVICE_DADD (0x4100000A) /**< \brief (USB) DEVICE Device Address */ +#define REG_USB_DEVICE_STATUS (0x4100000C) /**< \brief (USB) DEVICE Status */ +#define REG_USB_DEVICE_FNUM (0x41000010) /**< \brief (USB) DEVICE Device Frame Number */ +#define REG_USB_DEVICE_INTENCLR (0x41000014) /**< \brief (USB) DEVICE Device Interrupt Enable Clear */ +#define REG_USB_DEVICE_INTENSET (0x41000018) /**< \brief (USB) DEVICE Device Interrupt Enable Set */ +#define REG_USB_DEVICE_INTFLAG (0x4100001C) /**< \brief (USB) DEVICE Device Interrupt Flag */ +#define REG_USB_DEVICE_EPINTSMRY (0x41000020) /**< \brief (USB) DEVICE End Point Interrupt Summary */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG0 (0x41000100) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR0 (0x41000104) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET0 (0x41000105) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS0 (0x41000106) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG0 (0x41000107) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR0 (0x41000108) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET0 (0x41000109) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG1 (0x41000120) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR1 (0x41000124) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET1 (0x41000125) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS1 (0x41000126) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG1 (0x41000127) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR1 (0x41000128) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET1 (0x41000129) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG2 (0x41000140) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR2 (0x41000144) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET2 (0x41000145) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS2 (0x41000146) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG2 (0x41000147) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR2 (0x41000148) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET2 (0x41000149) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG3 (0x41000160) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR3 (0x41000164) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET3 (0x41000165) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS3 (0x41000166) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG3 (0x41000167) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR3 (0x41000168) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET3 (0x41000169) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG4 (0x41000180) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR4 (0x41000184) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET4 (0x41000185) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS4 (0x41000186) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG4 (0x41000187) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR4 (0x41000188) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET4 (0x41000189) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG5 (0x410001A0) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR5 (0x410001A4) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET5 (0x410001A5) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS5 (0x410001A6) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG5 (0x410001A7) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR5 (0x410001A8) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET5 (0x410001A9) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG6 (0x410001C0) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR6 (0x410001C4) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET6 (0x410001C5) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS6 (0x410001C6) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG6 (0x410001C7) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR6 (0x410001C8) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET6 (0x410001C9) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG7 (0x410001E0) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR7 (0x410001E4) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET7 (0x410001E5) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS7 (0x410001E6) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG7 (0x410001E7) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR7 (0x410001E8) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET7 (0x410001E9) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 7 */ +#define REG_USB_HOST_CTRLB (0x41000008) /**< \brief (USB) HOST Control B */ +#define REG_USB_HOST_HSOFC (0x4100000A) /**< \brief (USB) HOST Host Start Of Frame Control */ +#define REG_USB_HOST_STATUS (0x4100000C) /**< \brief (USB) HOST Status */ +#define REG_USB_HOST_FNUM (0x41000010) /**< \brief (USB) HOST Host Frame Number */ +#define REG_USB_HOST_FLENHIGH (0x41000012) /**< \brief (USB) HOST Host Frame Length */ +#define REG_USB_HOST_INTENCLR (0x41000014) /**< \brief (USB) HOST Host Interrupt Enable Clear */ +#define REG_USB_HOST_INTENSET (0x41000018) /**< \brief (USB) HOST Host Interrupt Enable Set */ +#define REG_USB_HOST_INTFLAG (0x4100001C) /**< \brief (USB) HOST Host Interrupt Flag */ +#define REG_USB_HOST_PINTSMRY (0x41000020) /**< \brief (USB) HOST Pipe Interrupt Summary */ +#define REG_USB_HOST_PIPE_PCFG0 (0x41000100) /**< \brief (USB) HOST_PIPE End Point Configuration 0 */ +#define REG_USB_HOST_PIPE_BINTERVAL0 (0x41000103) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 0 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR0 (0x41000104) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 0 */ +#define REG_USB_HOST_PIPE_PSTATUSSET0 (0x41000105) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 0 */ +#define REG_USB_HOST_PIPE_PSTATUS0 (0x41000106) /**< \brief (USB) HOST_PIPE End Point Pipe Status 0 */ +#define REG_USB_HOST_PIPE_PINTFLAG0 (0x41000107) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 0 */ +#define REG_USB_HOST_PIPE_PINTENCLR0 (0x41000108) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 0 */ +#define REG_USB_HOST_PIPE_PINTENSET0 (0x41000109) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 0 */ +#define REG_USB_HOST_PIPE_PCFG1 (0x41000120) /**< \brief (USB) HOST_PIPE End Point Configuration 1 */ +#define REG_USB_HOST_PIPE_BINTERVAL1 (0x41000123) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 1 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR1 (0x41000124) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 1 */ +#define REG_USB_HOST_PIPE_PSTATUSSET1 (0x41000125) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 1 */ +#define REG_USB_HOST_PIPE_PSTATUS1 (0x41000126) /**< \brief (USB) HOST_PIPE End Point Pipe Status 1 */ +#define REG_USB_HOST_PIPE_PINTFLAG1 (0x41000127) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 1 */ +#define REG_USB_HOST_PIPE_PINTENCLR1 (0x41000128) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 1 */ +#define REG_USB_HOST_PIPE_PINTENSET1 (0x41000129) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 1 */ +#define REG_USB_HOST_PIPE_PCFG2 (0x41000140) /**< \brief (USB) HOST_PIPE End Point Configuration 2 */ +#define REG_USB_HOST_PIPE_BINTERVAL2 (0x41000143) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 2 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR2 (0x41000144) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 2 */ +#define REG_USB_HOST_PIPE_PSTATUSSET2 (0x41000145) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 2 */ +#define REG_USB_HOST_PIPE_PSTATUS2 (0x41000146) /**< \brief (USB) HOST_PIPE End Point Pipe Status 2 */ +#define REG_USB_HOST_PIPE_PINTFLAG2 (0x41000147) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 2 */ +#define REG_USB_HOST_PIPE_PINTENCLR2 (0x41000148) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 2 */ +#define REG_USB_HOST_PIPE_PINTENSET2 (0x41000149) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 2 */ +#define REG_USB_HOST_PIPE_PCFG3 (0x41000160) /**< \brief (USB) HOST_PIPE End Point Configuration 3 */ +#define REG_USB_HOST_PIPE_BINTERVAL3 (0x41000163) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 3 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR3 (0x41000164) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 3 */ +#define REG_USB_HOST_PIPE_PSTATUSSET3 (0x41000165) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 3 */ +#define REG_USB_HOST_PIPE_PSTATUS3 (0x41000166) /**< \brief (USB) HOST_PIPE End Point Pipe Status 3 */ +#define REG_USB_HOST_PIPE_PINTFLAG3 (0x41000167) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 3 */ +#define REG_USB_HOST_PIPE_PINTENCLR3 (0x41000168) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 3 */ +#define REG_USB_HOST_PIPE_PINTENSET3 (0x41000169) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 3 */ +#define REG_USB_HOST_PIPE_PCFG4 (0x41000180) /**< \brief (USB) HOST_PIPE End Point Configuration 4 */ +#define REG_USB_HOST_PIPE_BINTERVAL4 (0x41000183) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 4 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR4 (0x41000184) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 4 */ +#define REG_USB_HOST_PIPE_PSTATUSSET4 (0x41000185) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 4 */ +#define REG_USB_HOST_PIPE_PSTATUS4 (0x41000186) /**< \brief (USB) HOST_PIPE End Point Pipe Status 4 */ +#define REG_USB_HOST_PIPE_PINTFLAG4 (0x41000187) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 4 */ +#define REG_USB_HOST_PIPE_PINTENCLR4 (0x41000188) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 4 */ +#define REG_USB_HOST_PIPE_PINTENSET4 (0x41000189) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 4 */ +#define REG_USB_HOST_PIPE_PCFG5 (0x410001A0) /**< \brief (USB) HOST_PIPE End Point Configuration 5 */ +#define REG_USB_HOST_PIPE_BINTERVAL5 (0x410001A3) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 5 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR5 (0x410001A4) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 5 */ +#define REG_USB_HOST_PIPE_PSTATUSSET5 (0x410001A5) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 5 */ +#define REG_USB_HOST_PIPE_PSTATUS5 (0x410001A6) /**< \brief (USB) HOST_PIPE End Point Pipe Status 5 */ +#define REG_USB_HOST_PIPE_PINTFLAG5 (0x410001A7) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 5 */ +#define REG_USB_HOST_PIPE_PINTENCLR5 (0x410001A8) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 5 */ +#define REG_USB_HOST_PIPE_PINTENSET5 (0x410001A9) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 5 */ +#define REG_USB_HOST_PIPE_PCFG6 (0x410001C0) /**< \brief (USB) HOST_PIPE End Point Configuration 6 */ +#define REG_USB_HOST_PIPE_BINTERVAL6 (0x410001C3) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 6 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR6 (0x410001C4) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 6 */ +#define REG_USB_HOST_PIPE_PSTATUSSET6 (0x410001C5) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 6 */ +#define REG_USB_HOST_PIPE_PSTATUS6 (0x410001C6) /**< \brief (USB) HOST_PIPE End Point Pipe Status 6 */ +#define REG_USB_HOST_PIPE_PINTFLAG6 (0x410001C7) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 6 */ +#define REG_USB_HOST_PIPE_PINTENCLR6 (0x410001C8) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 6 */ +#define REG_USB_HOST_PIPE_PINTENSET6 (0x410001C9) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 6 */ +#define REG_USB_HOST_PIPE_PCFG7 (0x410001E0) /**< \brief (USB) HOST_PIPE End Point Configuration 7 */ +#define REG_USB_HOST_PIPE_BINTERVAL7 (0x410001E3) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 7 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR7 (0x410001E4) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 7 */ +#define REG_USB_HOST_PIPE_PSTATUSSET7 (0x410001E5) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 7 */ +#define REG_USB_HOST_PIPE_PSTATUS7 (0x410001E6) /**< \brief (USB) HOST_PIPE End Point Pipe Status 7 */ +#define REG_USB_HOST_PIPE_PINTFLAG7 (0x410001E7) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 7 */ +#define REG_USB_HOST_PIPE_PINTENCLR7 (0x410001E8) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 7 */ +#define REG_USB_HOST_PIPE_PINTENSET7 (0x410001E9) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 7 */ +#else +#define REG_USB_CTRLA (*(RwReg8 *)0x41000000UL) /**< \brief (USB) Control A */ +#define REG_USB_SYNCBUSY (*(RoReg8 *)0x41000002UL) /**< \brief (USB) Synchronization Busy */ +#define REG_USB_QOSCTRL (*(RwReg8 *)0x41000003UL) /**< \brief (USB) USB Quality Of Service */ +#define REG_USB_FSMSTATUS (*(RoReg8 *)0x4100000DUL) /**< \brief (USB) Finite State Machine Status */ +#define REG_USB_DESCADD (*(RwReg *)0x41000024UL) /**< \brief (USB) Descriptor Address */ +#define REG_USB_PADCAL (*(RwReg16*)0x41000028UL) /**< \brief (USB) USB PAD Calibration */ +#define REG_USB_DEVICE_CTRLB (*(RwReg16*)0x41000008UL) /**< \brief (USB) DEVICE Control B */ +#define REG_USB_DEVICE_DADD (*(RwReg8 *)0x4100000AUL) /**< \brief (USB) DEVICE Device Address */ +#define REG_USB_DEVICE_STATUS (*(RoReg8 *)0x4100000CUL) /**< \brief (USB) DEVICE Status */ +#define REG_USB_DEVICE_FNUM (*(RoReg16*)0x41000010UL) /**< \brief (USB) DEVICE Device Frame Number */ +#define REG_USB_DEVICE_INTENCLR (*(RwReg16*)0x41000014UL) /**< \brief (USB) DEVICE Device Interrupt Enable Clear */ +#define REG_USB_DEVICE_INTENSET (*(RwReg16*)0x41000018UL) /**< \brief (USB) DEVICE Device Interrupt Enable Set */ +#define REG_USB_DEVICE_INTFLAG (*(RwReg16*)0x4100001CUL) /**< \brief (USB) DEVICE Device Interrupt Flag */ +#define REG_USB_DEVICE_EPINTSMRY (*(RoReg16*)0x41000020UL) /**< \brief (USB) DEVICE End Point Interrupt Summary */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG0 (*(RwReg8 *)0x41000100UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR0 (*(WoReg8 *)0x41000104UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET0 (*(WoReg8 *)0x41000105UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS0 (*(RoReg8 *)0x41000106UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG0 (*(RwReg8 *)0x41000107UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR0 (*(RwReg8 *)0x41000108UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET0 (*(RwReg8 *)0x41000109UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 0 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG1 (*(RwReg8 *)0x41000120UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR1 (*(WoReg8 *)0x41000124UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET1 (*(WoReg8 *)0x41000125UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS1 (*(RoReg8 *)0x41000126UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG1 (*(RwReg8 *)0x41000127UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR1 (*(RwReg8 *)0x41000128UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET1 (*(RwReg8 *)0x41000129UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 1 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG2 (*(RwReg8 *)0x41000140UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR2 (*(WoReg8 *)0x41000144UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET2 (*(WoReg8 *)0x41000145UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS2 (*(RoReg8 *)0x41000146UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG2 (*(RwReg8 *)0x41000147UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR2 (*(RwReg8 *)0x41000148UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET2 (*(RwReg8 *)0x41000149UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 2 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG3 (*(RwReg8 *)0x41000160UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR3 (*(WoReg8 *)0x41000164UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET3 (*(WoReg8 *)0x41000165UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS3 (*(RoReg8 *)0x41000166UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG3 (*(RwReg8 *)0x41000167UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR3 (*(RwReg8 *)0x41000168UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET3 (*(RwReg8 *)0x41000169UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 3 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG4 (*(RwReg8 *)0x41000180UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR4 (*(WoReg8 *)0x41000184UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET4 (*(WoReg8 *)0x41000185UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS4 (*(RoReg8 *)0x41000186UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG4 (*(RwReg8 *)0x41000187UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR4 (*(RwReg8 *)0x41000188UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET4 (*(RwReg8 *)0x41000189UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 4 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG5 (*(RwReg8 *)0x410001A0UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR5 (*(WoReg8 *)0x410001A4UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET5 (*(WoReg8 *)0x410001A5UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS5 (*(RoReg8 *)0x410001A6UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG5 (*(RwReg8 *)0x410001A7UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR5 (*(RwReg8 *)0x410001A8UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET5 (*(RwReg8 *)0x410001A9UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 5 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG6 (*(RwReg8 *)0x410001C0UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR6 (*(WoReg8 *)0x410001C4UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET6 (*(WoReg8 *)0x410001C5UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS6 (*(RoReg8 *)0x410001C6UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG6 (*(RwReg8 *)0x410001C7UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR6 (*(RwReg8 *)0x410001C8UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET6 (*(RwReg8 *)0x410001C9UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 6 */ +#define REG_USB_DEVICE_ENDPOINT_EPCFG7 (*(RwReg8 *)0x410001E0UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Configuration 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSCLR7 (*(WoReg8 *)0x410001E4UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Clear 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUSSET7 (*(WoReg8 *)0x410001E5UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status Set 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPSTATUS7 (*(RoReg8 *)0x410001E6UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Pipe Status 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTFLAG7 (*(RwReg8 *)0x410001E7UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Flag 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENCLR7 (*(RwReg8 *)0x410001E8UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Clear Flag 7 */ +#define REG_USB_DEVICE_ENDPOINT_EPINTENSET7 (*(RwReg8 *)0x410001E9UL) /**< \brief (USB) DEVICE_ENDPOINT End Point Interrupt Set Flag 7 */ +#define REG_USB_HOST_CTRLB (*(RwReg16*)0x41000008UL) /**< \brief (USB) HOST Control B */ +#define REG_USB_HOST_HSOFC (*(RwReg8 *)0x4100000AUL) /**< \brief (USB) HOST Host Start Of Frame Control */ +#define REG_USB_HOST_STATUS (*(RwReg8 *)0x4100000CUL) /**< \brief (USB) HOST Status */ +#define REG_USB_HOST_FNUM (*(RwReg16*)0x41000010UL) /**< \brief (USB) HOST Host Frame Number */ +#define REG_USB_HOST_FLENHIGH (*(RoReg8 *)0x41000012UL) /**< \brief (USB) HOST Host Frame Length */ +#define REG_USB_HOST_INTENCLR (*(RwReg16*)0x41000014UL) /**< \brief (USB) HOST Host Interrupt Enable Clear */ +#define REG_USB_HOST_INTENSET (*(RwReg16*)0x41000018UL) /**< \brief (USB) HOST Host Interrupt Enable Set */ +#define REG_USB_HOST_INTFLAG (*(RwReg16*)0x4100001CUL) /**< \brief (USB) HOST Host Interrupt Flag */ +#define REG_USB_HOST_PINTSMRY (*(RoReg16*)0x41000020UL) /**< \brief (USB) HOST Pipe Interrupt Summary */ +#define REG_USB_HOST_PIPE_PCFG0 (*(RwReg8 *)0x41000100UL) /**< \brief (USB) HOST_PIPE End Point Configuration 0 */ +#define REG_USB_HOST_PIPE_BINTERVAL0 (*(RwReg8 *)0x41000103UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 0 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR0 (*(WoReg8 *)0x41000104UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 0 */ +#define REG_USB_HOST_PIPE_PSTATUSSET0 (*(WoReg8 *)0x41000105UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 0 */ +#define REG_USB_HOST_PIPE_PSTATUS0 (*(RoReg8 *)0x41000106UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 0 */ +#define REG_USB_HOST_PIPE_PINTFLAG0 (*(RwReg8 *)0x41000107UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 0 */ +#define REG_USB_HOST_PIPE_PINTENCLR0 (*(RwReg8 *)0x41000108UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 0 */ +#define REG_USB_HOST_PIPE_PINTENSET0 (*(RwReg8 *)0x41000109UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 0 */ +#define REG_USB_HOST_PIPE_PCFG1 (*(RwReg8 *)0x41000120UL) /**< \brief (USB) HOST_PIPE End Point Configuration 1 */ +#define REG_USB_HOST_PIPE_BINTERVAL1 (*(RwReg8 *)0x41000123UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 1 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR1 (*(WoReg8 *)0x41000124UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 1 */ +#define REG_USB_HOST_PIPE_PSTATUSSET1 (*(WoReg8 *)0x41000125UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 1 */ +#define REG_USB_HOST_PIPE_PSTATUS1 (*(RoReg8 *)0x41000126UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 1 */ +#define REG_USB_HOST_PIPE_PINTFLAG1 (*(RwReg8 *)0x41000127UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 1 */ +#define REG_USB_HOST_PIPE_PINTENCLR1 (*(RwReg8 *)0x41000128UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 1 */ +#define REG_USB_HOST_PIPE_PINTENSET1 (*(RwReg8 *)0x41000129UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 1 */ +#define REG_USB_HOST_PIPE_PCFG2 (*(RwReg8 *)0x41000140UL) /**< \brief (USB) HOST_PIPE End Point Configuration 2 */ +#define REG_USB_HOST_PIPE_BINTERVAL2 (*(RwReg8 *)0x41000143UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 2 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR2 (*(WoReg8 *)0x41000144UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 2 */ +#define REG_USB_HOST_PIPE_PSTATUSSET2 (*(WoReg8 *)0x41000145UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 2 */ +#define REG_USB_HOST_PIPE_PSTATUS2 (*(RoReg8 *)0x41000146UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 2 */ +#define REG_USB_HOST_PIPE_PINTFLAG2 (*(RwReg8 *)0x41000147UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 2 */ +#define REG_USB_HOST_PIPE_PINTENCLR2 (*(RwReg8 *)0x41000148UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 2 */ +#define REG_USB_HOST_PIPE_PINTENSET2 (*(RwReg8 *)0x41000149UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 2 */ +#define REG_USB_HOST_PIPE_PCFG3 (*(RwReg8 *)0x41000160UL) /**< \brief (USB) HOST_PIPE End Point Configuration 3 */ +#define REG_USB_HOST_PIPE_BINTERVAL3 (*(RwReg8 *)0x41000163UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 3 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR3 (*(WoReg8 *)0x41000164UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 3 */ +#define REG_USB_HOST_PIPE_PSTATUSSET3 (*(WoReg8 *)0x41000165UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 3 */ +#define REG_USB_HOST_PIPE_PSTATUS3 (*(RoReg8 *)0x41000166UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 3 */ +#define REG_USB_HOST_PIPE_PINTFLAG3 (*(RwReg8 *)0x41000167UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 3 */ +#define REG_USB_HOST_PIPE_PINTENCLR3 (*(RwReg8 *)0x41000168UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 3 */ +#define REG_USB_HOST_PIPE_PINTENSET3 (*(RwReg8 *)0x41000169UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 3 */ +#define REG_USB_HOST_PIPE_PCFG4 (*(RwReg8 *)0x41000180UL) /**< \brief (USB) HOST_PIPE End Point Configuration 4 */ +#define REG_USB_HOST_PIPE_BINTERVAL4 (*(RwReg8 *)0x41000183UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 4 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR4 (*(WoReg8 *)0x41000184UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 4 */ +#define REG_USB_HOST_PIPE_PSTATUSSET4 (*(WoReg8 *)0x41000185UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 4 */ +#define REG_USB_HOST_PIPE_PSTATUS4 (*(RoReg8 *)0x41000186UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 4 */ +#define REG_USB_HOST_PIPE_PINTFLAG4 (*(RwReg8 *)0x41000187UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 4 */ +#define REG_USB_HOST_PIPE_PINTENCLR4 (*(RwReg8 *)0x41000188UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 4 */ +#define REG_USB_HOST_PIPE_PINTENSET4 (*(RwReg8 *)0x41000189UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 4 */ +#define REG_USB_HOST_PIPE_PCFG5 (*(RwReg8 *)0x410001A0UL) /**< \brief (USB) HOST_PIPE End Point Configuration 5 */ +#define REG_USB_HOST_PIPE_BINTERVAL5 (*(RwReg8 *)0x410001A3UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 5 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR5 (*(WoReg8 *)0x410001A4UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 5 */ +#define REG_USB_HOST_PIPE_PSTATUSSET5 (*(WoReg8 *)0x410001A5UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 5 */ +#define REG_USB_HOST_PIPE_PSTATUS5 (*(RoReg8 *)0x410001A6UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 5 */ +#define REG_USB_HOST_PIPE_PINTFLAG5 (*(RwReg8 *)0x410001A7UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 5 */ +#define REG_USB_HOST_PIPE_PINTENCLR5 (*(RwReg8 *)0x410001A8UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 5 */ +#define REG_USB_HOST_PIPE_PINTENSET5 (*(RwReg8 *)0x410001A9UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 5 */ +#define REG_USB_HOST_PIPE_PCFG6 (*(RwReg8 *)0x410001C0UL) /**< \brief (USB) HOST_PIPE End Point Configuration 6 */ +#define REG_USB_HOST_PIPE_BINTERVAL6 (*(RwReg8 *)0x410001C3UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 6 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR6 (*(WoReg8 *)0x410001C4UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 6 */ +#define REG_USB_HOST_PIPE_PSTATUSSET6 (*(WoReg8 *)0x410001C5UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 6 */ +#define REG_USB_HOST_PIPE_PSTATUS6 (*(RoReg8 *)0x410001C6UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 6 */ +#define REG_USB_HOST_PIPE_PINTFLAG6 (*(RwReg8 *)0x410001C7UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 6 */ +#define REG_USB_HOST_PIPE_PINTENCLR6 (*(RwReg8 *)0x410001C8UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 6 */ +#define REG_USB_HOST_PIPE_PINTENSET6 (*(RwReg8 *)0x410001C9UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 6 */ +#define REG_USB_HOST_PIPE_PCFG7 (*(RwReg8 *)0x410001E0UL) /**< \brief (USB) HOST_PIPE End Point Configuration 7 */ +#define REG_USB_HOST_PIPE_BINTERVAL7 (*(RwReg8 *)0x410001E3UL) /**< \brief (USB) HOST_PIPE Bus Access Period of Pipe 7 */ +#define REG_USB_HOST_PIPE_PSTATUSCLR7 (*(WoReg8 *)0x410001E4UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Clear 7 */ +#define REG_USB_HOST_PIPE_PSTATUSSET7 (*(WoReg8 *)0x410001E5UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status Set 7 */ +#define REG_USB_HOST_PIPE_PSTATUS7 (*(RoReg8 *)0x410001E6UL) /**< \brief (USB) HOST_PIPE End Point Pipe Status 7 */ +#define REG_USB_HOST_PIPE_PINTFLAG7 (*(RwReg8 *)0x410001E7UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag 7 */ +#define REG_USB_HOST_PIPE_PINTENCLR7 (*(RwReg8 *)0x410001E8UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Clear 7 */ +#define REG_USB_HOST_PIPE_PINTENSET7 (*(RwReg8 *)0x410001E9UL) /**< \brief (USB) HOST_PIPE Pipe Interrupt Flag Set 7 */ +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + +/* ========== Instance parameters for USB peripheral ========== */ +#define USB_AHB_2_USB_FIFO_DEPTH 4 // bytes number, should be at least 2, and 2^n (4,8,16 ...) +#define USB_AHB_2_USB_RD_DATA_BITS 8 // 8, 16 or 32, here : 8-bits is required as UTMI interface should work in 8-bits mode +#define USB_AHB_2_USB_WR_DATA_BITS 32 // 8, 16 or 32 : here, AHB transfer is made in word mode +#define USB_AHB_2_USB_WR_THRESHOLD 2 // as soon as there are N bytes-free inside the fifo, ahb read transfer is requested +#define USB_DATA_BUS_16_8 0 // UTMI/SIE data bus size : 0 -> 8 bits, 1 -> 16 bits +#define USB_EPNUM 8 // parameter for rtl : max of ENDPOINT and PIPE NUM +#define USB_EPT_NUM 8 // Number of USB end points +#define USB_GCLK_ID 10 // Index of Generic Clock +#define USB_INITIAL_CONTROL_QOS 3 // CONTROL QOS RESET value +#define USB_INITIAL_DATA_QOS 3 // DATA QOS RESET value +#define USB_MISSING_SOF_DET_IMPLEMENTED 1 // 48 mHz xPLL feature implemented +#define USB_PIPE_NUM 8 // Number of USB pipes +#define USB_SYSTEM_CLOCK_IS_CKUSB 0 // Dual (1'b0) or Single (1'b1) clock system +#define USB_USB_2_AHB_FIFO_DEPTH 4 // bytes number, should be at least 2, and 2^n (4,8,16 ...) +#define USB_USB_2_AHB_RD_DATA_BITS 16 // 8, 16 or 32, here : 8-bits is required as UTMI interface should work in 8-bits mode +#define USB_USB_2_AHB_RD_THRESHOLD 2 // as soon as there are 16 bytes-free inside the fifo, ahb read transfer is requested +#define USB_USB_2_AHB_WR_DATA_BITS 8 // 8, 16 or 32 : here : 8-bits is required as UTMI interface should work in 8-bits mode + +#endif /* _SAMD51_USB_INSTANCE_ */ diff --git a/lib/samd51/samd51a/include/instance/wdt.h b/lib/samd51/samd51a/include/instance/wdt.h index f5109be..67fd5fc 100644 --- a/lib/samd51/samd51a/include/instance/wdt.h +++ b/lib/samd51/samd51a/include/instance/wdt.h @@ -1,55 +1,55 @@ -/** - * \file - * - * \brief Instance description for WDT - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_WDT_INSTANCE_ -#define _SAMD51_WDT_INSTANCE_ - -/* ========== Register definition for WDT peripheral ========== */ -#if (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#define REG_WDT_CTRLA (0x40002000) /**< \brief (WDT) Control */ -#define REG_WDT_CONFIG (0x40002001) /**< \brief (WDT) Configuration */ -#define REG_WDT_EWCTRL (0x40002002) /**< \brief (WDT) Early Warning Interrupt Control */ -#define REG_WDT_INTENCLR (0x40002004) /**< \brief (WDT) Interrupt Enable Clear */ -#define REG_WDT_INTENSET (0x40002005) /**< \brief (WDT) Interrupt Enable Set */ -#define REG_WDT_INTFLAG (0x40002006) /**< \brief (WDT) Interrupt Flag Status and Clear */ -#define REG_WDT_SYNCBUSY (0x40002008) /**< \brief (WDT) Synchronization Busy */ -#define REG_WDT_CLEAR (0x4000200C) /**< \brief (WDT) Clear */ -#else -#define REG_WDT_CTRLA (*(RwReg8 *)0x40002000UL) /**< \brief (WDT) Control */ -#define REG_WDT_CONFIG (*(RwReg8 *)0x40002001UL) /**< \brief (WDT) Configuration */ -#define REG_WDT_EWCTRL (*(RwReg8 *)0x40002002UL) /**< \brief (WDT) Early Warning Interrupt Control */ -#define REG_WDT_INTENCLR (*(RwReg8 *)0x40002004UL) /**< \brief (WDT) Interrupt Enable Clear */ -#define REG_WDT_INTENSET (*(RwReg8 *)0x40002005UL) /**< \brief (WDT) Interrupt Enable Set */ -#define REG_WDT_INTFLAG (*(RwReg8 *)0x40002006UL) /**< \brief (WDT) Interrupt Flag Status and Clear */ -#define REG_WDT_SYNCBUSY (*(RoReg *)0x40002008UL) /**< \brief (WDT) Synchronization Busy */ -#define REG_WDT_CLEAR (*(WoReg8 *)0x4000200CUL) /**< \brief (WDT) Clear */ -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ - - -#endif /* _SAMD51_WDT_INSTANCE_ */ +/** + * \file + * + * \brief Instance description for WDT + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_WDT_INSTANCE_ +#define _SAMD51_WDT_INSTANCE_ + +/* ========== Register definition for WDT peripheral ========== */ +#if (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#define REG_WDT_CTRLA (0x40002000) /**< \brief (WDT) Control */ +#define REG_WDT_CONFIG (0x40002001) /**< \brief (WDT) Configuration */ +#define REG_WDT_EWCTRL (0x40002002) /**< \brief (WDT) Early Warning Interrupt Control */ +#define REG_WDT_INTENCLR (0x40002004) /**< \brief (WDT) Interrupt Enable Clear */ +#define REG_WDT_INTENSET (0x40002005) /**< \brief (WDT) Interrupt Enable Set */ +#define REG_WDT_INTFLAG (0x40002006) /**< \brief (WDT) Interrupt Flag Status and Clear */ +#define REG_WDT_SYNCBUSY (0x40002008) /**< \brief (WDT) Synchronization Busy */ +#define REG_WDT_CLEAR (0x4000200C) /**< \brief (WDT) Clear */ +#else +#define REG_WDT_CTRLA (*(RwReg8 *)0x40002000UL) /**< \brief (WDT) Control */ +#define REG_WDT_CONFIG (*(RwReg8 *)0x40002001UL) /**< \brief (WDT) Configuration */ +#define REG_WDT_EWCTRL (*(RwReg8 *)0x40002002UL) /**< \brief (WDT) Early Warning Interrupt Control */ +#define REG_WDT_INTENCLR (*(RwReg8 *)0x40002004UL) /**< \brief (WDT) Interrupt Enable Clear */ +#define REG_WDT_INTENSET (*(RwReg8 *)0x40002005UL) /**< \brief (WDT) Interrupt Enable Set */ +#define REG_WDT_INTFLAG (*(RwReg8 *)0x40002006UL) /**< \brief (WDT) Interrupt Flag Status and Clear */ +#define REG_WDT_SYNCBUSY (*(RoReg *)0x40002008UL) /**< \brief (WDT) Synchronization Busy */ +#define REG_WDT_CLEAR (*(WoReg8 *)0x4000200CUL) /**< \brief (WDT) Clear */ +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ + + +#endif /* _SAMD51_WDT_INSTANCE_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51g18a.h b/lib/samd51/samd51a/include/pio/samd51g18a.h index 92a6c26..ca599ec 100644 --- a/lib/samd51/samd51a/include/pio/samd51g18a.h +++ b/lib/samd51/samd51a/include/pio/samd51g18a.h @@ -1,1359 +1,1359 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51G18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51G18A_PIO_ -#define _SAMD51G18A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) - -#endif /* _SAMD51G18A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51G18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51G18A_PIO_ +#define _SAMD51G18A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) + +#endif /* _SAMD51G18A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51g19a.h b/lib/samd51/samd51a/include/pio/samd51g19a.h index 6475e66..e0a8fd2 100644 --- a/lib/samd51/samd51a/include/pio/samd51g19a.h +++ b/lib/samd51/samd51a/include/pio/samd51g19a.h @@ -1,1359 +1,1359 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51G19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51G19A_PIO_ -#define _SAMD51G19A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) - -#endif /* _SAMD51G19A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51G19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51G19A_PIO_ +#define _SAMD51G19A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) + +#endif /* _SAMD51G19A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51j18a.h b/lib/samd51/samd51a/include/pio/samd51j18a.h index 68a982e..23555f6 100644 --- a/lib/samd51/samd51a/include/pio/samd51j18a.h +++ b/lib/samd51/samd51a/include/pio/samd51j18a.h @@ -1,1858 +1,1858 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51J18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51J18A_PIO_ -#define _SAMD51J18A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) - -#endif /* _SAMD51J18A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51J18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J18A_PIO_ +#define _SAMD51J18A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) + +#endif /* _SAMD51J18A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51j19a.h b/lib/samd51/samd51a/include/pio/samd51j19a.h index 3de01a5..a34cd6d 100644 --- a/lib/samd51/samd51a/include/pio/samd51j19a.h +++ b/lib/samd51/samd51a/include/pio/samd51j19a.h @@ -1,1858 +1,1858 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51J19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51J19A_PIO_ -#define _SAMD51J19A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) - -#endif /* _SAMD51J19A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51J19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J19A_PIO_ +#define _SAMD51J19A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) + +#endif /* _SAMD51J19A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51j20a.h b/lib/samd51/samd51a/include/pio/samd51j20a.h index abbeeeb..0f2b631 100644 --- a/lib/samd51/samd51a/include/pio/samd51j20a.h +++ b/lib/samd51/samd51a/include/pio/samd51j20a.h @@ -1,1858 +1,1858 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51J20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51J20A_PIO_ -#define _SAMD51J20A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) - -#endif /* _SAMD51J20A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51J20A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J20A_PIO_ +#define _SAMD51J20A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) + +#endif /* _SAMD51J20A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51n19a.h b/lib/samd51/samd51a/include/pio/samd51n19a.h index e48e112..a50d0e2 100644 --- a/lib/samd51/samd51a/include/pio/samd51n19a.h +++ b/lib/samd51/samd51a/include/pio/samd51n19a.h @@ -1,2565 +1,2565 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51N19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51N19A_PIO_ -#define _SAMD51N19A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ -#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ -#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ -#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ -#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ -#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ -#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ -#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ -#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ -#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ -#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ -#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ -#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ -#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ -#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ -#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ -#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ -#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ -#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ -#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ -#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ -#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ -#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ -#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ -#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ -#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ -#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ -#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ -#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ -#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ -#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ -#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ -#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ -#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ -#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ -#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ -#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ -#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ -#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ -#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ -#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ -#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ -#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ -#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ -#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ -#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ -#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ -#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ -#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ -#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ -#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ -#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ -#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ -#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ -#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ -#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ -#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ -#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ -#define MUX_PC27M_CM4_SWO _L_(12) -#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) -#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ -#define MUX_PC27H_CM4_TRACECLK _L_(7) -#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) -#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) -#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ -#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) -#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) -#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) -#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ -#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) -#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) -#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) -#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ -#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) -#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) -#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) -#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ -#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) -#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) -#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ -#define MUX_PB18M_GCLK_IO4 _L_(12) -#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) -#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ -#define MUX_PB19M_GCLK_IO5 _L_(12) -#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) -#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ -#define MUX_PB20M_GCLK_IO6 _L_(12) -#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) -#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ -#define MUX_PB21M_GCLK_IO7 _L_(12) -#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) -#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ -#define MUX_PC00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) -#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ -#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ -#define MUX_PC16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) -#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ -#define MUX_PC01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) -#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ -#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ -#define MUX_PC17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) -#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ -#define MUX_PB18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) -#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ -#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ -#define MUX_PC02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) -#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ -#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ -#define MUX_PC18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) -#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ -#define MUX_PB19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) -#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ -#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ -#define MUX_PC03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) -#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ -#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ -#define MUX_PC19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) -#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ -#define MUX_PB20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) -#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ -#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ -#define MUX_PC20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) -#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ -#define MUX_PB21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) -#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ -#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ -#define MUX_PC05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) -#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ -#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ -#define MUX_PC21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) -#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ -#define MUX_PC06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) -#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ -#define MUX_PB24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) -#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ -#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ -#define MUX_PC24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) -#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ -#define MUX_PB25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) -#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ -#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ -#define MUX_PC07A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) -#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) -#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ -#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ -#define MUX_PC25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) -#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ -#define MUX_PC10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) -#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ -#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ -#define MUX_PC26A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) -#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) -#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ -#define MUX_PC11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) -#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ -#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ -#define MUX_PC27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) -#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ -#define MUX_PC12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) -#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ -#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ -#define MUX_PC28A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) -#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) -#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ -#define MUX_PC13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) -#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ -#define MUX_PC14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) -#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ -#define MUX_PC15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) -#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ -#define MUX_PC17D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) -#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ -#define MUX_PB24C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) -#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ -#define MUX_PC16D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) -#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ -#define MUX_PB25C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) -#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ -#define MUX_PC18D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) -#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ -#define MUX_PC24C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) -#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ -#define MUX_PC19D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) -#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ -#define MUX_PC25C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) -#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ -#define MUX_PC27C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) -#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ -#define MUX_PC28C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) -#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ -#define MUX_PB25D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) -#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ -#define MUX_PB24D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) -#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ -#define MUX_PC24D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) -#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ -#define MUX_PC25D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) -#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ -#define MUX_PB20C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) -#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ -#define MUX_PB21C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) -#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ -#define MUX_PC10F_TCC0_WO0 _L_(5) -#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) -#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) -#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ -#define MUX_PC16F_TCC0_WO0 _L_(5) -#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) -#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ -#define MUX_PC11F_TCC0_WO1 _L_(5) -#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) -#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) -#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ -#define MUX_PC17F_TCC0_WO1 _L_(5) -#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) -#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ -#define MUX_PC12F_TCC0_WO2 _L_(5) -#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) -#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) -#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ -#define MUX_PC18F_TCC0_WO2 _L_(5) -#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) -#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ -#define MUX_PC13F_TCC0_WO3 _L_(5) -#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) -#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) -#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ -#define MUX_PC19F_TCC0_WO3 _L_(5) -#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) -#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ -#define MUX_PC14F_TCC0_WO4 _L_(5) -#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) -#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) -#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ -#define MUX_PC20F_TCC0_WO4 _L_(5) -#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) -#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ -#define MUX_PC15F_TCC0_WO5 _L_(5) -#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) -#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) -#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ -#define MUX_PC21F_TCC0_WO5 _L_(5) -#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) -#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ -#define MUX_PC14G_TCC1_WO0 _L_(6) -#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) -#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ -#define MUX_PB18F_TCC1_WO0 _L_(5) -#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) -#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ -#define MUX_PC15G_TCC1_WO1 _L_(6) -#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) -#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ -#define MUX_PB19F_TCC1_WO1 _L_(5) -#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) -#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ -#define MUX_PB20F_TCC1_WO2 _L_(5) -#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) -#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ -#define MUX_PB21F_TCC1_WO3 _L_(5) -#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) -#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ -#define MUX_PC10G_TCC1_WO4 _L_(6) -#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) -#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ -#define MUX_PC11G_TCC1_WO5 _L_(6) -#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) -#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ -#define MUX_PC12G_TCC1_WO6 _L_(6) -#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) -#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ -#define MUX_PC13G_TCC1_WO7 _L_(6) -#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) -#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ -#define MUX_PB18G_PDEC_QDI0 _L_(6) -#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) -#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ -#define MUX_PC16G_PDEC_QDI0 _L_(6) -#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) -#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ -#define MUX_PB19G_PDEC_QDI1 _L_(6) -#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) -#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) -#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ -#define MUX_PB24G_PDEC_QDI1 _L_(6) -#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) -#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) -#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ -#define MUX_PC17G_PDEC_QDI1 _L_(6) -#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) -#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ -#define MUX_PB20G_PDEC_QDI2 _L_(6) -#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) -#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) -#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ -#define MUX_PB25G_PDEC_QDI2 _L_(6) -#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) -#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) -#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ -#define MUX_PC18G_PDEC_QDI2 _L_(6) -#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) -#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ -#define MUX_PB24M_AC_CMP0 _L_(12) -#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) -#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ -#define MUX_PB25M_AC_CMP1 _L_(12) -#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) -#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ -#define MUX_PC27N_CCL_IN4 _L_(13) -#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) -#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ -#define MUX_PC28N_CCL_IN5 _L_(13) -#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) -#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ -#define MUX_PC20N_CCL_IN9 _L_(13) -#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) -#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ -#define MUX_PC21N_CCL_IN10 _L_(13) -#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) -#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ -#define MUX_PB18C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) -#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ -#define MUX_PB19C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) -#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM6 peripheral ========== */ -#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ -#define MUX_PC13D_SERCOM6_PAD0 _L_(3) -#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) -#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) -#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ -#define MUX_PC16C_SERCOM6_PAD0 _L_(2) -#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) -#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) -#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ -#define MUX_PC12D_SERCOM6_PAD1 _L_(3) -#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) -#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) -#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ -#define MUX_PC05C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) -#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) -#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ -#define MUX_PC17C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) -#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) -#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ -#define MUX_PC14D_SERCOM6_PAD2 _L_(3) -#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) -#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) -#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ -#define MUX_PC06C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) -#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) -#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ -#define MUX_PC10C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) -#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) -#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ -#define MUX_PC18C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) -#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) -#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ -#define MUX_PC15D_SERCOM6_PAD3 _L_(3) -#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) -#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) -#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ -#define MUX_PC07C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) -#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) -#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ -#define MUX_PC11C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) -#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) -#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ -#define MUX_PC19C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) -#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM7 peripheral ========== */ -#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ -#define MUX_PB21D_SERCOM7_PAD0 _L_(3) -#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) -#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) -#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ -#define MUX_PB30C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) -#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) -#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ -#define MUX_PC12C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) -#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) -#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ -#define MUX_PB20D_SERCOM7_PAD1 _L_(3) -#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) -#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) -#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ -#define MUX_PB31C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) -#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) -#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ -#define MUX_PC13C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) -#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) -#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ -#define MUX_PB18D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) -#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) -#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ -#define MUX_PC10D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) -#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) -#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ -#define MUX_PC14C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) -#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) -#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ -#define MUX_PA30C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) -#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) -#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ -#define MUX_PB19D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) -#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) -#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ -#define MUX_PC11D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) -#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) -#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ -#define MUX_PC15C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) -#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) -#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ -#define MUX_PA31C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) -#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC6 peripheral ========== */ -#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ -#define MUX_PA30E_TC6_WO0 _L_(4) -#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) -#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) -#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ -#define MUX_PB02E_TC6_WO0 _L_(4) -#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) -#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) -#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ -#define MUX_PB16E_TC6_WO0 _L_(4) -#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) -#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) -#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ -#define MUX_PA31E_TC6_WO1 _L_(4) -#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) -#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) -#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ -#define MUX_PB03E_TC6_WO1 _L_(4) -#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) -#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) -#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ -#define MUX_PB17E_TC6_WO1 _L_(4) -#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) -#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC7 peripheral ========== */ -#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ -#define MUX_PA20E_TC7_WO0 _L_(4) -#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) -#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) -#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ -#define MUX_PB00E_TC7_WO0 _L_(4) -#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) -#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) -#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ -#define MUX_PB22E_TC7_WO0 _L_(4) -#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) -#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) -#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ -#define MUX_PA21E_TC7_WO1 _L_(4) -#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) -#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) -#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ -#define MUX_PB01E_TC7_WO1 _L_(4) -#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) -#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) -#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ -#define MUX_PB23E_TC7_WO1 _L_(4) -#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) -#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ -#define MUX_PC02B_ADC1_AIN4 _L_(1) -#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) -#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) -#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ -#define MUX_PC03B_ADC1_AIN5 _L_(1) -#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) -#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ -#define MUX_PC00B_ADC1_AIN10 _L_(1) -#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) -#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) -#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ -#define MUX_PC01B_ADC1_AIN11 _L_(1) -#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) -#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ -#define MUX_PC12K_PCC_DATA10 _L_(10) -#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) -#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) -#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ -#define MUX_PC13K_PCC_DATA11 _L_(10) -#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) -#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) -#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ -#define MUX_PC14K_PCC_DATA12 _L_(10) -#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) -#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) -#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ -#define MUX_PC15K_PCC_DATA13 _L_(10) -#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) -#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ -#define MUX_PC06I_SDHC0_SDCD _L_(8) -#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) -#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ -#define MUX_PC07I_SDHC0_SDWP _L_(8) -#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) -#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) -/* ========== PORT definition for SDHC1 peripheral ========== */ -#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ -#define MUX_PB16I_SDHC1_SDCD _L_(8) -#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) -#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) -#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ -#define MUX_PC20I_SDHC1_SDCD _L_(8) -#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) -#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) -#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ -#define MUX_PA21I_SDHC1_SDCK _L_(8) -#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) -#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) -#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ -#define MUX_PA20I_SDHC1_SDCMD _L_(8) -#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) -#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) -#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ -#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) -#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) -#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) -#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ -#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) -#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) -#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) -#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ -#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) -#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) -#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) -#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ -#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) -#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) -#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) -#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ -#define MUX_PB17I_SDHC1_SDWP _L_(8) -#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) -#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) -#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ -#define MUX_PC21I_SDHC1_SDWP _L_(8) -#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) -#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) - -#endif /* _SAMD51N19A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51N19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51N19A_PIO_ +#define _SAMD51N19A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ +#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ +#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ +#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ +#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ +#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ +#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ +#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ +#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ +#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ +#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ +#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ +#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ +#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ +#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ +#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ +#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ +#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ +#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ +#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ +#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ +#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ +#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ +#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ +#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ +#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ +#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ +#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ +#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ +#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ +#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ +#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ +#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ +#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ +#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ +#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ +#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ +#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ +#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ +#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ +#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ +#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ +#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ +#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ +#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ +#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ +#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ +#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ +#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ +#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ +#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ +#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ +#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ +#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ +#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ +#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ +#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ +#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ +#define MUX_PC27M_CM4_SWO _L_(12) +#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) +#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ +#define MUX_PC27H_CM4_TRACECLK _L_(7) +#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) +#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) +#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ +#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) +#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) +#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) +#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ +#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) +#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) +#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) +#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ +#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) +#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) +#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) +#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ +#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) +#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) +#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ +#define MUX_PB18M_GCLK_IO4 _L_(12) +#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) +#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ +#define MUX_PB19M_GCLK_IO5 _L_(12) +#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) +#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ +#define MUX_PB20M_GCLK_IO6 _L_(12) +#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) +#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ +#define MUX_PB21M_GCLK_IO7 _L_(12) +#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) +#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ +#define MUX_PC00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) +#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ +#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ +#define MUX_PC16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) +#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ +#define MUX_PC01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) +#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ +#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ +#define MUX_PC17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) +#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ +#define MUX_PB18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) +#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ +#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ +#define MUX_PC02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) +#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ +#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ +#define MUX_PC18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) +#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ +#define MUX_PB19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) +#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ +#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ +#define MUX_PC03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) +#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ +#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ +#define MUX_PC19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) +#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ +#define MUX_PB20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) +#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ +#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ +#define MUX_PC20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) +#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ +#define MUX_PB21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) +#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ +#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ +#define MUX_PC05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) +#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ +#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ +#define MUX_PC21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) +#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ +#define MUX_PC06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) +#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ +#define MUX_PB24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) +#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ +#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ +#define MUX_PC24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) +#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ +#define MUX_PB25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) +#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ +#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ +#define MUX_PC07A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) +#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) +#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ +#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ +#define MUX_PC25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) +#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ +#define MUX_PC10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) +#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ +#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ +#define MUX_PC26A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) +#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) +#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ +#define MUX_PC11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) +#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ +#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ +#define MUX_PC27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) +#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ +#define MUX_PC12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) +#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ +#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ +#define MUX_PC28A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) +#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) +#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ +#define MUX_PC13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) +#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ +#define MUX_PC14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) +#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ +#define MUX_PC15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) +#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ +#define MUX_PC17D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) +#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ +#define MUX_PB24C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) +#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ +#define MUX_PC16D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) +#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ +#define MUX_PB25C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) +#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ +#define MUX_PC18D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) +#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ +#define MUX_PC24C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) +#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ +#define MUX_PC19D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) +#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ +#define MUX_PC25C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) +#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ +#define MUX_PC27C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) +#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ +#define MUX_PC28C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) +#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ +#define MUX_PB25D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) +#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ +#define MUX_PB24D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) +#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ +#define MUX_PC24D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) +#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ +#define MUX_PC25D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) +#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ +#define MUX_PB20C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) +#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ +#define MUX_PB21C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) +#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ +#define MUX_PC10F_TCC0_WO0 _L_(5) +#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) +#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) +#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ +#define MUX_PC16F_TCC0_WO0 _L_(5) +#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) +#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ +#define MUX_PC11F_TCC0_WO1 _L_(5) +#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) +#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) +#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ +#define MUX_PC17F_TCC0_WO1 _L_(5) +#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) +#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ +#define MUX_PC12F_TCC0_WO2 _L_(5) +#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) +#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) +#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ +#define MUX_PC18F_TCC0_WO2 _L_(5) +#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) +#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ +#define MUX_PC13F_TCC0_WO3 _L_(5) +#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) +#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) +#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ +#define MUX_PC19F_TCC0_WO3 _L_(5) +#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) +#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ +#define MUX_PC14F_TCC0_WO4 _L_(5) +#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) +#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) +#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ +#define MUX_PC20F_TCC0_WO4 _L_(5) +#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) +#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ +#define MUX_PC15F_TCC0_WO5 _L_(5) +#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) +#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) +#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ +#define MUX_PC21F_TCC0_WO5 _L_(5) +#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) +#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ +#define MUX_PC14G_TCC1_WO0 _L_(6) +#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) +#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ +#define MUX_PB18F_TCC1_WO0 _L_(5) +#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) +#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ +#define MUX_PC15G_TCC1_WO1 _L_(6) +#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) +#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ +#define MUX_PB19F_TCC1_WO1 _L_(5) +#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) +#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ +#define MUX_PB20F_TCC1_WO2 _L_(5) +#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) +#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ +#define MUX_PB21F_TCC1_WO3 _L_(5) +#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) +#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ +#define MUX_PC10G_TCC1_WO4 _L_(6) +#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) +#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ +#define MUX_PC11G_TCC1_WO5 _L_(6) +#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) +#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ +#define MUX_PC12G_TCC1_WO6 _L_(6) +#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) +#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ +#define MUX_PC13G_TCC1_WO7 _L_(6) +#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) +#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ +#define MUX_PB18G_PDEC_QDI0 _L_(6) +#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) +#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ +#define MUX_PC16G_PDEC_QDI0 _L_(6) +#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) +#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ +#define MUX_PB19G_PDEC_QDI1 _L_(6) +#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) +#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) +#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ +#define MUX_PB24G_PDEC_QDI1 _L_(6) +#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) +#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) +#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ +#define MUX_PC17G_PDEC_QDI1 _L_(6) +#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) +#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ +#define MUX_PB20G_PDEC_QDI2 _L_(6) +#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) +#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) +#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ +#define MUX_PB25G_PDEC_QDI2 _L_(6) +#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) +#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) +#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ +#define MUX_PC18G_PDEC_QDI2 _L_(6) +#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) +#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ +#define MUX_PB24M_AC_CMP0 _L_(12) +#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) +#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ +#define MUX_PB25M_AC_CMP1 _L_(12) +#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) +#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ +#define MUX_PC27N_CCL_IN4 _L_(13) +#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) +#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ +#define MUX_PC28N_CCL_IN5 _L_(13) +#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) +#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ +#define MUX_PC20N_CCL_IN9 _L_(13) +#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) +#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ +#define MUX_PC21N_CCL_IN10 _L_(13) +#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) +#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ +#define MUX_PB18C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) +#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ +#define MUX_PB19C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) +#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM6 peripheral ========== */ +#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ +#define MUX_PC13D_SERCOM6_PAD0 _L_(3) +#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) +#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) +#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ +#define MUX_PC16C_SERCOM6_PAD0 _L_(2) +#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) +#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) +#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ +#define MUX_PC12D_SERCOM6_PAD1 _L_(3) +#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) +#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) +#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ +#define MUX_PC05C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) +#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) +#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ +#define MUX_PC17C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) +#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) +#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ +#define MUX_PC14D_SERCOM6_PAD2 _L_(3) +#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) +#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) +#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ +#define MUX_PC06C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) +#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) +#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ +#define MUX_PC10C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) +#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) +#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ +#define MUX_PC18C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) +#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) +#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ +#define MUX_PC15D_SERCOM6_PAD3 _L_(3) +#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) +#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) +#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ +#define MUX_PC07C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) +#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) +#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ +#define MUX_PC11C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) +#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) +#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ +#define MUX_PC19C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) +#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM7 peripheral ========== */ +#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ +#define MUX_PB21D_SERCOM7_PAD0 _L_(3) +#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) +#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) +#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ +#define MUX_PB30C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) +#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) +#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ +#define MUX_PC12C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) +#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) +#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ +#define MUX_PB20D_SERCOM7_PAD1 _L_(3) +#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) +#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) +#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ +#define MUX_PB31C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) +#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) +#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ +#define MUX_PC13C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) +#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) +#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ +#define MUX_PB18D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) +#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) +#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ +#define MUX_PC10D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) +#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) +#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ +#define MUX_PC14C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) +#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) +#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ +#define MUX_PA30C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) +#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) +#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ +#define MUX_PB19D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) +#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) +#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ +#define MUX_PC11D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) +#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) +#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ +#define MUX_PC15C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) +#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) +#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ +#define MUX_PA31C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) +#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC6 peripheral ========== */ +#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ +#define MUX_PA30E_TC6_WO0 _L_(4) +#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) +#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) +#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ +#define MUX_PB02E_TC6_WO0 _L_(4) +#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) +#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) +#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ +#define MUX_PB16E_TC6_WO0 _L_(4) +#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) +#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) +#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ +#define MUX_PA31E_TC6_WO1 _L_(4) +#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) +#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) +#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ +#define MUX_PB03E_TC6_WO1 _L_(4) +#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) +#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) +#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ +#define MUX_PB17E_TC6_WO1 _L_(4) +#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) +#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC7 peripheral ========== */ +#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ +#define MUX_PA20E_TC7_WO0 _L_(4) +#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) +#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) +#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ +#define MUX_PB00E_TC7_WO0 _L_(4) +#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) +#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) +#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ +#define MUX_PB22E_TC7_WO0 _L_(4) +#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) +#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) +#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ +#define MUX_PA21E_TC7_WO1 _L_(4) +#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) +#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) +#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ +#define MUX_PB01E_TC7_WO1 _L_(4) +#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) +#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) +#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ +#define MUX_PB23E_TC7_WO1 _L_(4) +#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) +#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ +#define MUX_PC02B_ADC1_AIN4 _L_(1) +#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) +#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) +#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ +#define MUX_PC03B_ADC1_AIN5 _L_(1) +#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) +#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ +#define MUX_PC00B_ADC1_AIN10 _L_(1) +#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) +#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) +#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ +#define MUX_PC01B_ADC1_AIN11 _L_(1) +#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) +#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ +#define MUX_PC12K_PCC_DATA10 _L_(10) +#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) +#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) +#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ +#define MUX_PC13K_PCC_DATA11 _L_(10) +#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) +#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) +#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ +#define MUX_PC14K_PCC_DATA12 _L_(10) +#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) +#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) +#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ +#define MUX_PC15K_PCC_DATA13 _L_(10) +#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) +#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ +#define MUX_PC06I_SDHC0_SDCD _L_(8) +#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) +#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ +#define MUX_PC07I_SDHC0_SDWP _L_(8) +#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) +#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) +/* ========== PORT definition for SDHC1 peripheral ========== */ +#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ +#define MUX_PB16I_SDHC1_SDCD _L_(8) +#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) +#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) +#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ +#define MUX_PC20I_SDHC1_SDCD _L_(8) +#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) +#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) +#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ +#define MUX_PA21I_SDHC1_SDCK _L_(8) +#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) +#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) +#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ +#define MUX_PA20I_SDHC1_SDCMD _L_(8) +#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) +#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) +#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ +#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) +#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) +#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) +#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ +#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) +#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) +#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) +#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ +#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) +#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) +#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) +#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ +#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) +#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) +#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) +#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ +#define MUX_PB17I_SDHC1_SDWP _L_(8) +#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) +#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) +#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ +#define MUX_PC21I_SDHC1_SDWP _L_(8) +#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) +#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) + +#endif /* _SAMD51N19A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51n20a.h b/lib/samd51/samd51a/include/pio/samd51n20a.h index 142eb49..6c3353a 100644 --- a/lib/samd51/samd51a/include/pio/samd51n20a.h +++ b/lib/samd51/samd51a/include/pio/samd51n20a.h @@ -1,2565 +1,2565 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51N20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51N20A_PIO_ -#define _SAMD51N20A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ -#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ -#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ -#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ -#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ -#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ -#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ -#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ -#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ -#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ -#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ -#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ -#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ -#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ -#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ -#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ -#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ -#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ -#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ -#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ -#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ -#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ -#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ -#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ -#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ -#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ -#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ -#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ -#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ -#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ -#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ -#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ -#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ -#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ -#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ -#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ -#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ -#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ -#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ -#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ -#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ -#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ -#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ -#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ -#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ -#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ -#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ -#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ -#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ -#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ -#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ -#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ -#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ -#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ -#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ -#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ -#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ -#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ -#define MUX_PC27M_CM4_SWO _L_(12) -#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) -#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ -#define MUX_PC27H_CM4_TRACECLK _L_(7) -#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) -#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) -#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ -#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) -#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) -#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) -#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ -#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) -#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) -#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) -#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ -#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) -#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) -#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) -#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ -#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) -#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) -#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ -#define MUX_PB18M_GCLK_IO4 _L_(12) -#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) -#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ -#define MUX_PB19M_GCLK_IO5 _L_(12) -#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) -#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ -#define MUX_PB20M_GCLK_IO6 _L_(12) -#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) -#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ -#define MUX_PB21M_GCLK_IO7 _L_(12) -#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) -#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ -#define MUX_PC00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) -#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ -#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ -#define MUX_PC16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) -#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ -#define MUX_PC01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) -#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ -#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ -#define MUX_PC17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) -#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ -#define MUX_PB18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) -#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ -#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ -#define MUX_PC02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) -#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ -#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ -#define MUX_PC18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) -#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ -#define MUX_PB19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) -#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ -#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ -#define MUX_PC03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) -#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ -#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ -#define MUX_PC19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) -#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ -#define MUX_PB20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) -#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ -#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ -#define MUX_PC20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) -#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ -#define MUX_PB21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) -#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ -#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ -#define MUX_PC05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) -#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ -#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ -#define MUX_PC21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) -#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ -#define MUX_PC06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) -#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ -#define MUX_PB24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) -#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ -#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ -#define MUX_PC24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) -#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ -#define MUX_PB25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) -#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ -#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ -#define MUX_PC07A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) -#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) -#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ -#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ -#define MUX_PC25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) -#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ -#define MUX_PC10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) -#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ -#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ -#define MUX_PC26A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) -#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) -#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ -#define MUX_PC11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) -#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ -#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ -#define MUX_PC27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) -#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ -#define MUX_PC12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) -#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ -#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ -#define MUX_PC28A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) -#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) -#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ -#define MUX_PC13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) -#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ -#define MUX_PC14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) -#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ -#define MUX_PC15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) -#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ -#define MUX_PC17D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) -#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ -#define MUX_PB24C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) -#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ -#define MUX_PC16D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) -#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ -#define MUX_PB25C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) -#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ -#define MUX_PC18D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) -#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ -#define MUX_PC24C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) -#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ -#define MUX_PC19D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) -#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ -#define MUX_PC25C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) -#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ -#define MUX_PC27C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) -#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ -#define MUX_PC28C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) -#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ -#define MUX_PB25D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) -#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ -#define MUX_PB24D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) -#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ -#define MUX_PC24D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) -#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ -#define MUX_PC25D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) -#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ -#define MUX_PB20C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) -#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ -#define MUX_PB21C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) -#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ -#define MUX_PC10F_TCC0_WO0 _L_(5) -#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) -#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) -#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ -#define MUX_PC16F_TCC0_WO0 _L_(5) -#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) -#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ -#define MUX_PC11F_TCC0_WO1 _L_(5) -#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) -#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) -#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ -#define MUX_PC17F_TCC0_WO1 _L_(5) -#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) -#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ -#define MUX_PC12F_TCC0_WO2 _L_(5) -#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) -#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) -#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ -#define MUX_PC18F_TCC0_WO2 _L_(5) -#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) -#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ -#define MUX_PC13F_TCC0_WO3 _L_(5) -#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) -#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) -#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ -#define MUX_PC19F_TCC0_WO3 _L_(5) -#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) -#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ -#define MUX_PC14F_TCC0_WO4 _L_(5) -#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) -#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) -#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ -#define MUX_PC20F_TCC0_WO4 _L_(5) -#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) -#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ -#define MUX_PC15F_TCC0_WO5 _L_(5) -#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) -#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) -#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ -#define MUX_PC21F_TCC0_WO5 _L_(5) -#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) -#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ -#define MUX_PC14G_TCC1_WO0 _L_(6) -#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) -#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ -#define MUX_PB18F_TCC1_WO0 _L_(5) -#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) -#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ -#define MUX_PC15G_TCC1_WO1 _L_(6) -#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) -#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ -#define MUX_PB19F_TCC1_WO1 _L_(5) -#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) -#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ -#define MUX_PB20F_TCC1_WO2 _L_(5) -#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) -#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ -#define MUX_PB21F_TCC1_WO3 _L_(5) -#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) -#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ -#define MUX_PC10G_TCC1_WO4 _L_(6) -#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) -#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ -#define MUX_PC11G_TCC1_WO5 _L_(6) -#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) -#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ -#define MUX_PC12G_TCC1_WO6 _L_(6) -#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) -#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ -#define MUX_PC13G_TCC1_WO7 _L_(6) -#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) -#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ -#define MUX_PB18G_PDEC_QDI0 _L_(6) -#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) -#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ -#define MUX_PC16G_PDEC_QDI0 _L_(6) -#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) -#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ -#define MUX_PB19G_PDEC_QDI1 _L_(6) -#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) -#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) -#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ -#define MUX_PB24G_PDEC_QDI1 _L_(6) -#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) -#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) -#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ -#define MUX_PC17G_PDEC_QDI1 _L_(6) -#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) -#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ -#define MUX_PB20G_PDEC_QDI2 _L_(6) -#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) -#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) -#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ -#define MUX_PB25G_PDEC_QDI2 _L_(6) -#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) -#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) -#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ -#define MUX_PC18G_PDEC_QDI2 _L_(6) -#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) -#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ -#define MUX_PB24M_AC_CMP0 _L_(12) -#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) -#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ -#define MUX_PB25M_AC_CMP1 _L_(12) -#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) -#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ -#define MUX_PC27N_CCL_IN4 _L_(13) -#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) -#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ -#define MUX_PC28N_CCL_IN5 _L_(13) -#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) -#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ -#define MUX_PC20N_CCL_IN9 _L_(13) -#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) -#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ -#define MUX_PC21N_CCL_IN10 _L_(13) -#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) -#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ -#define MUX_PB18C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) -#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ -#define MUX_PB19C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) -#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM6 peripheral ========== */ -#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ -#define MUX_PC13D_SERCOM6_PAD0 _L_(3) -#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) -#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) -#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ -#define MUX_PC16C_SERCOM6_PAD0 _L_(2) -#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) -#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) -#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ -#define MUX_PC12D_SERCOM6_PAD1 _L_(3) -#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) -#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) -#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ -#define MUX_PC05C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) -#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) -#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ -#define MUX_PC17C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) -#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) -#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ -#define MUX_PC14D_SERCOM6_PAD2 _L_(3) -#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) -#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) -#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ -#define MUX_PC06C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) -#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) -#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ -#define MUX_PC10C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) -#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) -#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ -#define MUX_PC18C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) -#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) -#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ -#define MUX_PC15D_SERCOM6_PAD3 _L_(3) -#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) -#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) -#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ -#define MUX_PC07C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) -#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) -#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ -#define MUX_PC11C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) -#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) -#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ -#define MUX_PC19C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) -#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM7 peripheral ========== */ -#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ -#define MUX_PB21D_SERCOM7_PAD0 _L_(3) -#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) -#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) -#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ -#define MUX_PB30C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) -#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) -#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ -#define MUX_PC12C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) -#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) -#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ -#define MUX_PB20D_SERCOM7_PAD1 _L_(3) -#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) -#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) -#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ -#define MUX_PB31C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) -#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) -#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ -#define MUX_PC13C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) -#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) -#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ -#define MUX_PB18D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) -#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) -#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ -#define MUX_PC10D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) -#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) -#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ -#define MUX_PC14C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) -#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) -#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ -#define MUX_PA30C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) -#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) -#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ -#define MUX_PB19D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) -#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) -#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ -#define MUX_PC11D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) -#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) -#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ -#define MUX_PC15C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) -#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) -#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ -#define MUX_PA31C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) -#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC6 peripheral ========== */ -#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ -#define MUX_PA30E_TC6_WO0 _L_(4) -#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) -#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) -#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ -#define MUX_PB02E_TC6_WO0 _L_(4) -#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) -#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) -#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ -#define MUX_PB16E_TC6_WO0 _L_(4) -#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) -#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) -#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ -#define MUX_PA31E_TC6_WO1 _L_(4) -#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) -#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) -#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ -#define MUX_PB03E_TC6_WO1 _L_(4) -#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) -#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) -#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ -#define MUX_PB17E_TC6_WO1 _L_(4) -#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) -#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC7 peripheral ========== */ -#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ -#define MUX_PA20E_TC7_WO0 _L_(4) -#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) -#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) -#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ -#define MUX_PB00E_TC7_WO0 _L_(4) -#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) -#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) -#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ -#define MUX_PB22E_TC7_WO0 _L_(4) -#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) -#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) -#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ -#define MUX_PA21E_TC7_WO1 _L_(4) -#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) -#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) -#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ -#define MUX_PB01E_TC7_WO1 _L_(4) -#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) -#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) -#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ -#define MUX_PB23E_TC7_WO1 _L_(4) -#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) -#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ -#define MUX_PC02B_ADC1_AIN4 _L_(1) -#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) -#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) -#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ -#define MUX_PC03B_ADC1_AIN5 _L_(1) -#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) -#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ -#define MUX_PC00B_ADC1_AIN10 _L_(1) -#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) -#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) -#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ -#define MUX_PC01B_ADC1_AIN11 _L_(1) -#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) -#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ -#define MUX_PC12K_PCC_DATA10 _L_(10) -#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) -#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) -#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ -#define MUX_PC13K_PCC_DATA11 _L_(10) -#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) -#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) -#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ -#define MUX_PC14K_PCC_DATA12 _L_(10) -#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) -#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) -#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ -#define MUX_PC15K_PCC_DATA13 _L_(10) -#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) -#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ -#define MUX_PC06I_SDHC0_SDCD _L_(8) -#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) -#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ -#define MUX_PC07I_SDHC0_SDWP _L_(8) -#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) -#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) -/* ========== PORT definition for SDHC1 peripheral ========== */ -#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ -#define MUX_PB16I_SDHC1_SDCD _L_(8) -#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) -#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) -#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ -#define MUX_PC20I_SDHC1_SDCD _L_(8) -#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) -#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) -#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ -#define MUX_PA21I_SDHC1_SDCK _L_(8) -#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) -#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) -#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ -#define MUX_PA20I_SDHC1_SDCMD _L_(8) -#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) -#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) -#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ -#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) -#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) -#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) -#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ -#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) -#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) -#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) -#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ -#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) -#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) -#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) -#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ -#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) -#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) -#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) -#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ -#define MUX_PB17I_SDHC1_SDWP _L_(8) -#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) -#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) -#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ -#define MUX_PC21I_SDHC1_SDWP _L_(8) -#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) -#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) - -#endif /* _SAMD51N20A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51N20A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51N20A_PIO_ +#define _SAMD51N20A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ +#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ +#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ +#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ +#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ +#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ +#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ +#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ +#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ +#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ +#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ +#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ +#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ +#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ +#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ +#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ +#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ +#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ +#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ +#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ +#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ +#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ +#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ +#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ +#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ +#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ +#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ +#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ +#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ +#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ +#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ +#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ +#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ +#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ +#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ +#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ +#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ +#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ +#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ +#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ +#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ +#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ +#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ +#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ +#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ +#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ +#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ +#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ +#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ +#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ +#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ +#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ +#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ +#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ +#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ +#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ +#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ +#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ +#define MUX_PC27M_CM4_SWO _L_(12) +#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) +#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ +#define MUX_PC27H_CM4_TRACECLK _L_(7) +#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) +#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) +#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ +#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) +#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) +#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) +#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ +#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) +#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) +#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) +#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ +#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) +#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) +#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) +#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ +#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) +#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) +#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ +#define MUX_PB18M_GCLK_IO4 _L_(12) +#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) +#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ +#define MUX_PB19M_GCLK_IO5 _L_(12) +#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) +#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ +#define MUX_PB20M_GCLK_IO6 _L_(12) +#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) +#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ +#define MUX_PB21M_GCLK_IO7 _L_(12) +#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) +#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ +#define MUX_PC00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) +#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ +#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ +#define MUX_PC16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) +#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ +#define MUX_PC01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) +#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ +#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ +#define MUX_PC17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) +#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ +#define MUX_PB18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) +#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ +#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ +#define MUX_PC02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) +#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ +#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ +#define MUX_PC18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) +#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ +#define MUX_PB19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) +#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ +#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ +#define MUX_PC03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) +#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ +#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ +#define MUX_PC19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) +#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ +#define MUX_PB20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) +#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ +#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ +#define MUX_PC20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) +#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ +#define MUX_PB21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) +#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ +#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ +#define MUX_PC05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) +#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ +#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ +#define MUX_PC21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) +#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ +#define MUX_PC06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) +#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ +#define MUX_PB24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) +#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ +#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ +#define MUX_PC24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) +#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ +#define MUX_PB25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) +#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ +#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ +#define MUX_PC07A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) +#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) +#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ +#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ +#define MUX_PC25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) +#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ +#define MUX_PC10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) +#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ +#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ +#define MUX_PC26A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) +#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) +#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ +#define MUX_PC11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) +#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ +#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ +#define MUX_PC27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) +#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ +#define MUX_PC12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) +#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ +#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ +#define MUX_PC28A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) +#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) +#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ +#define MUX_PC13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) +#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ +#define MUX_PC14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) +#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ +#define MUX_PC15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) +#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ +#define MUX_PC17D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) +#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ +#define MUX_PB24C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) +#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ +#define MUX_PC16D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) +#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ +#define MUX_PB25C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) +#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ +#define MUX_PC18D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) +#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ +#define MUX_PC24C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) +#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ +#define MUX_PC19D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) +#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ +#define MUX_PC25C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) +#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ +#define MUX_PC27C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) +#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ +#define MUX_PC28C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) +#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ +#define MUX_PB25D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) +#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ +#define MUX_PB24D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) +#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ +#define MUX_PC24D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) +#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ +#define MUX_PC25D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) +#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ +#define MUX_PB20C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) +#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ +#define MUX_PB21C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) +#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ +#define MUX_PC10F_TCC0_WO0 _L_(5) +#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) +#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) +#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ +#define MUX_PC16F_TCC0_WO0 _L_(5) +#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) +#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ +#define MUX_PC11F_TCC0_WO1 _L_(5) +#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) +#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) +#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ +#define MUX_PC17F_TCC0_WO1 _L_(5) +#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) +#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ +#define MUX_PC12F_TCC0_WO2 _L_(5) +#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) +#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) +#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ +#define MUX_PC18F_TCC0_WO2 _L_(5) +#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) +#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ +#define MUX_PC13F_TCC0_WO3 _L_(5) +#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) +#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) +#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ +#define MUX_PC19F_TCC0_WO3 _L_(5) +#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) +#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ +#define MUX_PC14F_TCC0_WO4 _L_(5) +#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) +#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) +#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ +#define MUX_PC20F_TCC0_WO4 _L_(5) +#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) +#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ +#define MUX_PC15F_TCC0_WO5 _L_(5) +#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) +#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) +#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ +#define MUX_PC21F_TCC0_WO5 _L_(5) +#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) +#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ +#define MUX_PC14G_TCC1_WO0 _L_(6) +#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) +#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ +#define MUX_PB18F_TCC1_WO0 _L_(5) +#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) +#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ +#define MUX_PC15G_TCC1_WO1 _L_(6) +#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) +#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ +#define MUX_PB19F_TCC1_WO1 _L_(5) +#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) +#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ +#define MUX_PB20F_TCC1_WO2 _L_(5) +#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) +#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ +#define MUX_PB21F_TCC1_WO3 _L_(5) +#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) +#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ +#define MUX_PC10G_TCC1_WO4 _L_(6) +#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) +#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ +#define MUX_PC11G_TCC1_WO5 _L_(6) +#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) +#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ +#define MUX_PC12G_TCC1_WO6 _L_(6) +#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) +#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ +#define MUX_PC13G_TCC1_WO7 _L_(6) +#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) +#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ +#define MUX_PB18G_PDEC_QDI0 _L_(6) +#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) +#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ +#define MUX_PC16G_PDEC_QDI0 _L_(6) +#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) +#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ +#define MUX_PB19G_PDEC_QDI1 _L_(6) +#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) +#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) +#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ +#define MUX_PB24G_PDEC_QDI1 _L_(6) +#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) +#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) +#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ +#define MUX_PC17G_PDEC_QDI1 _L_(6) +#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) +#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ +#define MUX_PB20G_PDEC_QDI2 _L_(6) +#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) +#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) +#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ +#define MUX_PB25G_PDEC_QDI2 _L_(6) +#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) +#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) +#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ +#define MUX_PC18G_PDEC_QDI2 _L_(6) +#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) +#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ +#define MUX_PB24M_AC_CMP0 _L_(12) +#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) +#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ +#define MUX_PB25M_AC_CMP1 _L_(12) +#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) +#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ +#define MUX_PC27N_CCL_IN4 _L_(13) +#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) +#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ +#define MUX_PC28N_CCL_IN5 _L_(13) +#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) +#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ +#define MUX_PC20N_CCL_IN9 _L_(13) +#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) +#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ +#define MUX_PC21N_CCL_IN10 _L_(13) +#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) +#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ +#define MUX_PB18C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) +#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ +#define MUX_PB19C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) +#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM6 peripheral ========== */ +#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ +#define MUX_PC13D_SERCOM6_PAD0 _L_(3) +#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) +#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) +#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ +#define MUX_PC16C_SERCOM6_PAD0 _L_(2) +#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) +#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) +#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ +#define MUX_PC12D_SERCOM6_PAD1 _L_(3) +#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) +#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) +#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ +#define MUX_PC05C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) +#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) +#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ +#define MUX_PC17C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) +#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) +#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ +#define MUX_PC14D_SERCOM6_PAD2 _L_(3) +#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) +#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) +#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ +#define MUX_PC06C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) +#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) +#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ +#define MUX_PC10C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) +#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) +#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ +#define MUX_PC18C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) +#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) +#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ +#define MUX_PC15D_SERCOM6_PAD3 _L_(3) +#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) +#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) +#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ +#define MUX_PC07C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) +#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) +#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ +#define MUX_PC11C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) +#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) +#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ +#define MUX_PC19C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) +#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM7 peripheral ========== */ +#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ +#define MUX_PB21D_SERCOM7_PAD0 _L_(3) +#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) +#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) +#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ +#define MUX_PB30C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) +#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) +#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ +#define MUX_PC12C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) +#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) +#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ +#define MUX_PB20D_SERCOM7_PAD1 _L_(3) +#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) +#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) +#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ +#define MUX_PB31C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) +#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) +#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ +#define MUX_PC13C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) +#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) +#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ +#define MUX_PB18D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) +#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) +#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ +#define MUX_PC10D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) +#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) +#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ +#define MUX_PC14C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) +#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) +#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ +#define MUX_PA30C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) +#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) +#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ +#define MUX_PB19D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) +#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) +#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ +#define MUX_PC11D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) +#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) +#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ +#define MUX_PC15C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) +#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) +#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ +#define MUX_PA31C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) +#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC6 peripheral ========== */ +#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ +#define MUX_PA30E_TC6_WO0 _L_(4) +#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) +#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) +#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ +#define MUX_PB02E_TC6_WO0 _L_(4) +#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) +#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) +#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ +#define MUX_PB16E_TC6_WO0 _L_(4) +#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) +#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) +#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ +#define MUX_PA31E_TC6_WO1 _L_(4) +#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) +#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) +#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ +#define MUX_PB03E_TC6_WO1 _L_(4) +#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) +#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) +#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ +#define MUX_PB17E_TC6_WO1 _L_(4) +#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) +#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC7 peripheral ========== */ +#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ +#define MUX_PA20E_TC7_WO0 _L_(4) +#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) +#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) +#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ +#define MUX_PB00E_TC7_WO0 _L_(4) +#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) +#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) +#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ +#define MUX_PB22E_TC7_WO0 _L_(4) +#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) +#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) +#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ +#define MUX_PA21E_TC7_WO1 _L_(4) +#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) +#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) +#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ +#define MUX_PB01E_TC7_WO1 _L_(4) +#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) +#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) +#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ +#define MUX_PB23E_TC7_WO1 _L_(4) +#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) +#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ +#define MUX_PC02B_ADC1_AIN4 _L_(1) +#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) +#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) +#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ +#define MUX_PC03B_ADC1_AIN5 _L_(1) +#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) +#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ +#define MUX_PC00B_ADC1_AIN10 _L_(1) +#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) +#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) +#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ +#define MUX_PC01B_ADC1_AIN11 _L_(1) +#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) +#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ +#define MUX_PC12K_PCC_DATA10 _L_(10) +#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) +#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) +#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ +#define MUX_PC13K_PCC_DATA11 _L_(10) +#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) +#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) +#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ +#define MUX_PC14K_PCC_DATA12 _L_(10) +#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) +#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) +#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ +#define MUX_PC15K_PCC_DATA13 _L_(10) +#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) +#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ +#define MUX_PC06I_SDHC0_SDCD _L_(8) +#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) +#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ +#define MUX_PC07I_SDHC0_SDWP _L_(8) +#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) +#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) +/* ========== PORT definition for SDHC1 peripheral ========== */ +#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ +#define MUX_PB16I_SDHC1_SDCD _L_(8) +#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) +#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) +#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ +#define MUX_PC20I_SDHC1_SDCD _L_(8) +#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) +#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) +#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ +#define MUX_PA21I_SDHC1_SDCK _L_(8) +#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) +#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) +#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ +#define MUX_PA20I_SDHC1_SDCMD _L_(8) +#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) +#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) +#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ +#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) +#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) +#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) +#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ +#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) +#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) +#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) +#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ +#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) +#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) +#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) +#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ +#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) +#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) +#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) +#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ +#define MUX_PB17I_SDHC1_SDWP _L_(8) +#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) +#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) +#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ +#define MUX_PC21I_SDHC1_SDWP _L_(8) +#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) +#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) + +#endif /* _SAMD51N20A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51p19a.h b/lib/samd51/samd51a/include/pio/samd51p19a.h index c2148cb..004b1ba 100644 --- a/lib/samd51/samd51a/include/pio/samd51p19a.h +++ b/lib/samd51/samd51a/include/pio/samd51p19a.h @@ -1,2879 +1,2879 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51P19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51P19A_PIO_ -#define _SAMD51P19A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ -#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ -#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ -#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ -#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ -#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ -#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ -#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ -#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ -#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ -#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ -#define PIN_PB26 58 /**< \brief Pin Number for PB26 */ -#define PORT_PB26 (_UL_(1) << 26) /**< \brief PORT Mask for PB26 */ -#define PIN_PB27 59 /**< \brief Pin Number for PB27 */ -#define PORT_PB27 (_UL_(1) << 27) /**< \brief PORT Mask for PB27 */ -#define PIN_PB28 60 /**< \brief Pin Number for PB28 */ -#define PORT_PB28 (_UL_(1) << 28) /**< \brief PORT Mask for PB28 */ -#define PIN_PB29 61 /**< \brief Pin Number for PB29 */ -#define PORT_PB29 (_UL_(1) << 29) /**< \brief PORT Mask for PB29 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ -#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ -#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ -#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ -#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ -#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ -#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ -#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ -#define PIN_PC04 68 /**< \brief Pin Number for PC04 */ -#define PORT_PC04 (_UL_(1) << 4) /**< \brief PORT Mask for PC04 */ -#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ -#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ -#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ -#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ -#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ -#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ -#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ -#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ -#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ -#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ -#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ -#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ -#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ -#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ -#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ -#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ -#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ -#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ -#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ -#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ -#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ -#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ -#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ -#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ -#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ -#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ -#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ -#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ -#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ -#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ -#define PIN_PC22 86 /**< \brief Pin Number for PC22 */ -#define PORT_PC22 (_UL_(1) << 22) /**< \brief PORT Mask for PC22 */ -#define PIN_PC23 87 /**< \brief Pin Number for PC23 */ -#define PORT_PC23 (_UL_(1) << 23) /**< \brief PORT Mask for PC23 */ -#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ -#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ -#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ -#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ -#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ -#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ -#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ -#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ -#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ -#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ -#define PIN_PC30 94 /**< \brief Pin Number for PC30 */ -#define PORT_PC30 (_UL_(1) << 30) /**< \brief PORT Mask for PC30 */ -#define PIN_PC31 95 /**< \brief Pin Number for PC31 */ -#define PORT_PC31 (_UL_(1) << 31) /**< \brief PORT Mask for PC31 */ -#define PIN_PD00 96 /**< \brief Pin Number for PD00 */ -#define PORT_PD00 (_UL_(1) << 0) /**< \brief PORT Mask for PD00 */ -#define PIN_PD01 97 /**< \brief Pin Number for PD01 */ -#define PORT_PD01 (_UL_(1) << 1) /**< \brief PORT Mask for PD01 */ -#define PIN_PD08 104 /**< \brief Pin Number for PD08 */ -#define PORT_PD08 (_UL_(1) << 8) /**< \brief PORT Mask for PD08 */ -#define PIN_PD09 105 /**< \brief Pin Number for PD09 */ -#define PORT_PD09 (_UL_(1) << 9) /**< \brief PORT Mask for PD09 */ -#define PIN_PD10 106 /**< \brief Pin Number for PD10 */ -#define PORT_PD10 (_UL_(1) << 10) /**< \brief PORT Mask for PD10 */ -#define PIN_PD11 107 /**< \brief Pin Number for PD11 */ -#define PORT_PD11 (_UL_(1) << 11) /**< \brief PORT Mask for PD11 */ -#define PIN_PD12 108 /**< \brief Pin Number for PD12 */ -#define PORT_PD12 (_UL_(1) << 12) /**< \brief PORT Mask for PD12 */ -#define PIN_PD20 116 /**< \brief Pin Number for PD20 */ -#define PORT_PD20 (_UL_(1) << 20) /**< \brief PORT Mask for PD20 */ -#define PIN_PD21 117 /**< \brief Pin Number for PD21 */ -#define PORT_PD21 (_UL_(1) << 21) /**< \brief PORT Mask for PD21 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ -#define MUX_PC27M_CM4_SWO _L_(12) -#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) -#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ -#define MUX_PC27H_CM4_TRACECLK _L_(7) -#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) -#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) -#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ -#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) -#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) -#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) -#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ -#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) -#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) -#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) -#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ -#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) -#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) -#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) -#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ -#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) -#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) -#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ -#define MUX_PB18M_GCLK_IO4 _L_(12) -#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) -#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ -#define MUX_PB19M_GCLK_IO5 _L_(12) -#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) -#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ -#define MUX_PB20M_GCLK_IO6 _L_(12) -#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) -#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ -#define MUX_PB21M_GCLK_IO7 _L_(12) -#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) -#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ -#define MUX_PC00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) -#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ -#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ -#define MUX_PC16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) -#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ -#define PIN_PD00A_EIC_EXTINT0 _L_(96) /**< \brief EIC signal: EXTINT0 on PD00 mux A */ -#define MUX_PD00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PD00A_EIC_EXTINT0 ((PIN_PD00A_EIC_EXTINT0 << 16) | MUX_PD00A_EIC_EXTINT0) -#define PORT_PD00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PD00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PD00 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ -#define MUX_PC01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) -#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ -#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ -#define MUX_PC17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) -#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ -#define PIN_PD01A_EIC_EXTINT1 _L_(97) /**< \brief EIC signal: EXTINT1 on PD01 mux A */ -#define MUX_PD01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PD01A_EIC_EXTINT1 ((PIN_PD01A_EIC_EXTINT1 << 16) | MUX_PD01A_EIC_EXTINT1) -#define PORT_PD01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PD01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PD01 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ -#define MUX_PB18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) -#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ -#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ -#define MUX_PC02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) -#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ -#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ -#define MUX_PC18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) -#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ -#define MUX_PB19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) -#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ -#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ -#define MUX_PC03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) -#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ -#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ -#define MUX_PC19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) -#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ -#define PIN_PD08A_EIC_EXTINT3 _L_(104) /**< \brief EIC signal: EXTINT3 on PD08 mux A */ -#define MUX_PD08A_EIC_EXTINT3 _L_(0) -#define PINMUX_PD08A_EIC_EXTINT3 ((PIN_PD08A_EIC_EXTINT3 << 16) | MUX_PD08A_EIC_EXTINT3) -#define PORT_PD08A_EIC_EXTINT3 (_UL_(1) << 8) -#define PIN_PD08A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PD08 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ -#define MUX_PB20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) -#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ -#define PIN_PC04A_EIC_EXTINT4 _L_(68) /**< \brief EIC signal: EXTINT4 on PC04 mux A */ -#define MUX_PC04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PC04A_EIC_EXTINT4 ((PIN_PC04A_EIC_EXTINT4 << 16) | MUX_PC04A_EIC_EXTINT4) -#define PORT_PC04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PC04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC04 External Interrupt Line */ -#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ -#define MUX_PC20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) -#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ -#define PIN_PD09A_EIC_EXTINT4 _L_(105) /**< \brief EIC signal: EXTINT4 on PD09 mux A */ -#define MUX_PD09A_EIC_EXTINT4 _L_(0) -#define PINMUX_PD09A_EIC_EXTINT4 ((PIN_PD09A_EIC_EXTINT4 << 16) | MUX_PD09A_EIC_EXTINT4) -#define PORT_PD09A_EIC_EXTINT4 (_UL_(1) << 9) -#define PIN_PD09A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PD09 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ -#define MUX_PB21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) -#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ -#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ -#define MUX_PC05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) -#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ -#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ -#define MUX_PC21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) -#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ -#define PIN_PD10A_EIC_EXTINT5 _L_(106) /**< \brief EIC signal: EXTINT5 on PD10 mux A */ -#define MUX_PD10A_EIC_EXTINT5 _L_(0) -#define PINMUX_PD10A_EIC_EXTINT5 ((PIN_PD10A_EIC_EXTINT5 << 16) | MUX_PD10A_EIC_EXTINT5) -#define PORT_PD10A_EIC_EXTINT5 (_UL_(1) << 10) -#define PIN_PD10A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PD10 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ -#define MUX_PC06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) -#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ -#define PIN_PC22A_EIC_EXTINT6 _L_(86) /**< \brief EIC signal: EXTINT6 on PC22 mux A */ -#define MUX_PC22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PC22A_EIC_EXTINT6 ((PIN_PC22A_EIC_EXTINT6 << 16) | MUX_PC22A_EIC_EXTINT6) -#define PORT_PC22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PC22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC22 External Interrupt Line */ -#define PIN_PD11A_EIC_EXTINT6 _L_(107) /**< \brief EIC signal: EXTINT6 on PD11 mux A */ -#define MUX_PD11A_EIC_EXTINT6 _L_(0) -#define PINMUX_PD11A_EIC_EXTINT6 ((PIN_PD11A_EIC_EXTINT6 << 16) | MUX_PD11A_EIC_EXTINT6) -#define PORT_PD11A_EIC_EXTINT6 (_UL_(1) << 11) -#define PIN_PD11A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PD11 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PC23A_EIC_EXTINT7 _L_(87) /**< \brief EIC signal: EXTINT7 on PC23 mux A */ -#define MUX_PC23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PC23A_EIC_EXTINT7 ((PIN_PC23A_EIC_EXTINT7 << 16) | MUX_PC23A_EIC_EXTINT7) -#define PORT_PC23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PC23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PC23 External Interrupt Line */ -#define PIN_PD12A_EIC_EXTINT7 _L_(108) /**< \brief EIC signal: EXTINT7 on PD12 mux A */ -#define MUX_PD12A_EIC_EXTINT7 _L_(0) -#define PINMUX_PD12A_EIC_EXTINT7 ((PIN_PD12A_EIC_EXTINT7 << 16) | MUX_PD12A_EIC_EXTINT7) -#define PORT_PD12A_EIC_EXTINT7 (_UL_(1) << 12) -#define PIN_PD12A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PD12 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ -#define MUX_PB24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) -#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ -#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ -#define MUX_PC24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) -#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ -#define MUX_PB25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) -#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ -#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ -#define MUX_PC07A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) -#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) -#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ -#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ -#define MUX_PC25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) -#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ -#define MUX_PC10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) -#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ -#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ -#define MUX_PC26A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) -#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) -#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ -#define PIN_PD20A_EIC_EXTINT10 _L_(116) /**< \brief EIC signal: EXTINT10 on PD20 mux A */ -#define MUX_PD20A_EIC_EXTINT10 _L_(0) -#define PINMUX_PD20A_EIC_EXTINT10 ((PIN_PD20A_EIC_EXTINT10 << 16) | MUX_PD20A_EIC_EXTINT10) -#define PORT_PD20A_EIC_EXTINT10 (_UL_(1) << 20) -#define PIN_PD20A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PD20 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ -#define MUX_PC11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) -#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ -#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ -#define MUX_PC27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) -#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ -#define PIN_PD21A_EIC_EXTINT11 _L_(117) /**< \brief EIC signal: EXTINT11 on PD21 mux A */ -#define MUX_PD21A_EIC_EXTINT11 _L_(0) -#define PINMUX_PD21A_EIC_EXTINT11 ((PIN_PD21A_EIC_EXTINT11 << 16) | MUX_PD21A_EIC_EXTINT11) -#define PORT_PD21A_EIC_EXTINT11 (_UL_(1) << 21) -#define PIN_PD21A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PD21 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PB26A_EIC_EXTINT12 _L_(58) /**< \brief EIC signal: EXTINT12 on PB26 mux A */ -#define MUX_PB26A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB26A_EIC_EXTINT12 ((PIN_PB26A_EIC_EXTINT12 << 16) | MUX_PB26A_EIC_EXTINT12) -#define PORT_PB26A_EIC_EXTINT12 (_UL_(1) << 26) -#define PIN_PB26A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB26 External Interrupt Line */ -#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ -#define MUX_PC12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) -#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ -#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ -#define MUX_PC28A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) -#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) -#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PB27A_EIC_EXTINT13 _L_(59) /**< \brief EIC signal: EXTINT13 on PB27 mux A */ -#define MUX_PB27A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB27A_EIC_EXTINT13 ((PIN_PB27A_EIC_EXTINT13 << 16) | MUX_PB27A_EIC_EXTINT13) -#define PORT_PB27A_EIC_EXTINT13 (_UL_(1) << 27) -#define PIN_PB27A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB27 External Interrupt Line */ -#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ -#define MUX_PC13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) -#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB28A_EIC_EXTINT14 _L_(60) /**< \brief EIC signal: EXTINT14 on PB28 mux A */ -#define MUX_PB28A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB28A_EIC_EXTINT14 ((PIN_PB28A_EIC_EXTINT14 << 16) | MUX_PB28A_EIC_EXTINT14) -#define PORT_PB28A_EIC_EXTINT14 (_UL_(1) << 28) -#define PIN_PB28A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB28 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ -#define MUX_PC14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) -#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ -#define PIN_PC30A_EIC_EXTINT14 _L_(94) /**< \brief EIC signal: EXTINT14 on PC30 mux A */ -#define MUX_PC30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PC30A_EIC_EXTINT14 ((PIN_PC30A_EIC_EXTINT14 << 16) | MUX_PC30A_EIC_EXTINT14) -#define PORT_PC30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PC30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB29A_EIC_EXTINT15 _L_(61) /**< \brief EIC signal: EXTINT15 on PB29 mux A */ -#define MUX_PB29A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB29A_EIC_EXTINT15 ((PIN_PB29A_EIC_EXTINT15 << 16) | MUX_PB29A_EIC_EXTINT15) -#define PORT_PB29A_EIC_EXTINT15 (_UL_(1) << 29) -#define PIN_PB29A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB29 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ -#define MUX_PC15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) -#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ -#define PIN_PC31A_EIC_EXTINT15 _L_(95) /**< \brief EIC signal: EXTINT15 on PC31 mux A */ -#define MUX_PC31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PC31A_EIC_EXTINT15 ((PIN_PC31A_EIC_EXTINT15 << 16) | MUX_PC31A_EIC_EXTINT15) -#define PORT_PC31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PC31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ -#define MUX_PC17D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) -#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ -#define MUX_PB24C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) -#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ -#define MUX_PC16D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) -#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ -#define MUX_PB25C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) -#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ -#define MUX_PC18D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) -#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ -#define MUX_PC24C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) -#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ -#define MUX_PC19D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) -#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ -#define MUX_PC25C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) -#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PC22C_SERCOM1_PAD0 _L_(86) /**< \brief SERCOM1 signal: PAD0 on PC22 mux C */ -#define MUX_PC22C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PC22C_SERCOM1_PAD0 ((PIN_PC22C_SERCOM1_PAD0 << 16) | MUX_PC22C_SERCOM1_PAD0) -#define PORT_PC22C_SERCOM1_PAD0 (_UL_(1) << 22) -#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ -#define MUX_PC27C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) -#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PC23C_SERCOM1_PAD1 _L_(87) /**< \brief SERCOM1 signal: PAD1 on PC23 mux C */ -#define MUX_PC23C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PC23C_SERCOM1_PAD1 ((PIN_PC23C_SERCOM1_PAD1 << 16) | MUX_PC23C_SERCOM1_PAD1) -#define PORT_PC23C_SERCOM1_PAD1 (_UL_(1) << 23) -#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ -#define MUX_PC28C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) -#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PD20C_SERCOM1_PAD2 _L_(116) /**< \brief SERCOM1 signal: PAD2 on PD20 mux C */ -#define MUX_PD20C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PD20C_SERCOM1_PAD2 ((PIN_PD20C_SERCOM1_PAD2 << 16) | MUX_PD20C_SERCOM1_PAD2) -#define PORT_PD20C_SERCOM1_PAD2 (_UL_(1) << 20) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -#define PIN_PD21C_SERCOM1_PAD3 _L_(117) /**< \brief SERCOM1 signal: PAD3 on PD21 mux C */ -#define MUX_PD21C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PD21C_SERCOM1_PAD3 ((PIN_PD21C_SERCOM1_PAD3 << 16) | MUX_PD21C_SERCOM1_PAD3) -#define PORT_PD21C_SERCOM1_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ -#define MUX_PB25D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) -#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PB26C_SERCOM2_PAD0 _L_(58) /**< \brief SERCOM2 signal: PAD0 on PB26 mux C */ -#define MUX_PB26C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PB26C_SERCOM2_PAD0 ((PIN_PB26C_SERCOM2_PAD0 << 16) | MUX_PB26C_SERCOM2_PAD0) -#define PORT_PB26C_SERCOM2_PAD0 (_UL_(1) << 26) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ -#define MUX_PB24D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) -#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PB27C_SERCOM2_PAD1 _L_(59) /**< \brief SERCOM2 signal: PAD1 on PB27 mux C */ -#define MUX_PB27C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PB27C_SERCOM2_PAD1 ((PIN_PB27C_SERCOM2_PAD1 << 16) | MUX_PB27C_SERCOM2_PAD1) -#define PORT_PB27C_SERCOM2_PAD1 (_UL_(1) << 27) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ -#define MUX_PC24D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) -#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) -#define PIN_PB28C_SERCOM2_PAD2 _L_(60) /**< \brief SERCOM2 signal: PAD2 on PB28 mux C */ -#define MUX_PB28C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PB28C_SERCOM2_PAD2 ((PIN_PB28C_SERCOM2_PAD2 << 16) | MUX_PB28C_SERCOM2_PAD2) -#define PORT_PB28C_SERCOM2_PAD2 (_UL_(1) << 28) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ -#define MUX_PC25D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) -#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) -#define PIN_PB29C_SERCOM2_PAD3 _L_(61) /**< \brief SERCOM2 signal: PAD3 on PB29 mux C */ -#define MUX_PB29C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PB29C_SERCOM2_PAD3 ((PIN_PB29C_SERCOM2_PAD3 << 16) | MUX_PB29C_SERCOM2_PAD3) -#define PORT_PB29C_SERCOM2_PAD3 (_UL_(1) << 29) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PC23D_SERCOM3_PAD0 _L_(87) /**< \brief SERCOM3 signal: PAD0 on PC23 mux D */ -#define MUX_PC23D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PC23D_SERCOM3_PAD0 ((PIN_PC23D_SERCOM3_PAD0 << 16) | MUX_PC23D_SERCOM3_PAD0) -#define PORT_PC23D_SERCOM3_PAD0 (_UL_(1) << 23) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ -#define MUX_PB20C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) -#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PC22D_SERCOM3_PAD1 _L_(86) /**< \brief SERCOM3 signal: PAD1 on PC22 mux D */ -#define MUX_PC22D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PC22D_SERCOM3_PAD1 ((PIN_PC22D_SERCOM3_PAD1 << 16) | MUX_PC22D_SERCOM3_PAD1) -#define PORT_PC22D_SERCOM3_PAD1 (_UL_(1) << 22) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ -#define MUX_PB21C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) -#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PD20D_SERCOM3_PAD2 _L_(116) /**< \brief SERCOM3 signal: PAD2 on PD20 mux D */ -#define MUX_PD20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PD20D_SERCOM3_PAD2 ((PIN_PD20D_SERCOM3_PAD2 << 16) | MUX_PD20D_SERCOM3_PAD2) -#define PORT_PD20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PD21D_SERCOM3_PAD3 _L_(117) /**< \brief SERCOM3 signal: PAD3 on PD21 mux D */ -#define MUX_PD21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PD21D_SERCOM3_PAD3 ((PIN_PD21D_SERCOM3_PAD3 << 16) | MUX_PD21D_SERCOM3_PAD3) -#define PORT_PD21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PC04F_TCC0_WO0 _L_(68) /**< \brief TCC0 signal: WO0 on PC04 mux F */ -#define MUX_PC04F_TCC0_WO0 _L_(5) -#define PINMUX_PC04F_TCC0_WO0 ((PIN_PC04F_TCC0_WO0 << 16) | MUX_PC04F_TCC0_WO0) -#define PORT_PC04F_TCC0_WO0 (_UL_(1) << 4) -#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ -#define MUX_PC10F_TCC0_WO0 _L_(5) -#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) -#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) -#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ -#define MUX_PC16F_TCC0_WO0 _L_(5) -#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) -#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ -#define MUX_PC11F_TCC0_WO1 _L_(5) -#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) -#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) -#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ -#define MUX_PC17F_TCC0_WO1 _L_(5) -#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) -#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) -#define PIN_PD08F_TCC0_WO1 _L_(104) /**< \brief TCC0 signal: WO1 on PD08 mux F */ -#define MUX_PD08F_TCC0_WO1 _L_(5) -#define PINMUX_PD08F_TCC0_WO1 ((PIN_PD08F_TCC0_WO1 << 16) | MUX_PD08F_TCC0_WO1) -#define PORT_PD08F_TCC0_WO1 (_UL_(1) << 8) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ -#define MUX_PC12F_TCC0_WO2 _L_(5) -#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) -#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) -#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ -#define MUX_PC18F_TCC0_WO2 _L_(5) -#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) -#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) -#define PIN_PD09F_TCC0_WO2 _L_(105) /**< \brief TCC0 signal: WO2 on PD09 mux F */ -#define MUX_PD09F_TCC0_WO2 _L_(5) -#define PINMUX_PD09F_TCC0_WO2 ((PIN_PD09F_TCC0_WO2 << 16) | MUX_PD09F_TCC0_WO2) -#define PORT_PD09F_TCC0_WO2 (_UL_(1) << 9) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ -#define MUX_PC13F_TCC0_WO3 _L_(5) -#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) -#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) -#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ -#define MUX_PC19F_TCC0_WO3 _L_(5) -#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) -#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) -#define PIN_PD10F_TCC0_WO3 _L_(106) /**< \brief TCC0 signal: WO3 on PD10 mux F */ -#define MUX_PD10F_TCC0_WO3 _L_(5) -#define PINMUX_PD10F_TCC0_WO3 ((PIN_PD10F_TCC0_WO3 << 16) | MUX_PD10F_TCC0_WO3) -#define PORT_PD10F_TCC0_WO3 (_UL_(1) << 10) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ -#define MUX_PC14F_TCC0_WO4 _L_(5) -#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) -#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) -#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ -#define MUX_PC20F_TCC0_WO4 _L_(5) -#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) -#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) -#define PIN_PD11F_TCC0_WO4 _L_(107) /**< \brief TCC0 signal: WO4 on PD11 mux F */ -#define MUX_PD11F_TCC0_WO4 _L_(5) -#define PINMUX_PD11F_TCC0_WO4 ((PIN_PD11F_TCC0_WO4 << 16) | MUX_PD11F_TCC0_WO4) -#define PORT_PD11F_TCC0_WO4 (_UL_(1) << 11) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ -#define MUX_PC15F_TCC0_WO5 _L_(5) -#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) -#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) -#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ -#define MUX_PC21F_TCC0_WO5 _L_(5) -#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) -#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) -#define PIN_PD12F_TCC0_WO5 _L_(108) /**< \brief TCC0 signal: WO5 on PD12 mux F */ -#define MUX_PD12F_TCC0_WO5 _L_(5) -#define PINMUX_PD12F_TCC0_WO5 ((PIN_PD12F_TCC0_WO5 << 16) | MUX_PD12F_TCC0_WO5) -#define PORT_PD12F_TCC0_WO5 (_UL_(1) << 12) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PC22F_TCC0_WO6 _L_(86) /**< \brief TCC0 signal: WO6 on PC22 mux F */ -#define MUX_PC22F_TCC0_WO6 _L_(5) -#define PINMUX_PC22F_TCC0_WO6 ((PIN_PC22F_TCC0_WO6 << 16) | MUX_PC22F_TCC0_WO6) -#define PORT_PC22F_TCC0_WO6 (_UL_(1) << 22) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -#define PIN_PC23F_TCC0_WO7 _L_(87) /**< \brief TCC0 signal: WO7 on PC23 mux F */ -#define MUX_PC23F_TCC0_WO7 _L_(5) -#define PINMUX_PC23F_TCC0_WO7 ((PIN_PC23F_TCC0_WO7 << 16) | MUX_PC23F_TCC0_WO7) -#define PORT_PC23F_TCC0_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ -#define MUX_PC14G_TCC1_WO0 _L_(6) -#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) -#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ -#define MUX_PB18F_TCC1_WO0 _L_(5) -#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) -#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) -#define PIN_PD20F_TCC1_WO0 _L_(116) /**< \brief TCC1 signal: WO0 on PD20 mux F */ -#define MUX_PD20F_TCC1_WO0 _L_(5) -#define PINMUX_PD20F_TCC1_WO0 ((PIN_PD20F_TCC1_WO0 << 16) | MUX_PD20F_TCC1_WO0) -#define PORT_PD20F_TCC1_WO0 (_UL_(1) << 20) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ -#define MUX_PC15G_TCC1_WO1 _L_(6) -#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) -#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ -#define MUX_PB19F_TCC1_WO1 _L_(5) -#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) -#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) -#define PIN_PD21F_TCC1_WO1 _L_(117) /**< \brief TCC1 signal: WO1 on PD21 mux F */ -#define MUX_PD21F_TCC1_WO1 _L_(5) -#define PINMUX_PD21F_TCC1_WO1 ((PIN_PD21F_TCC1_WO1 << 16) | MUX_PD21F_TCC1_WO1) -#define PORT_PD21F_TCC1_WO1 (_UL_(1) << 21) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ -#define MUX_PB20F_TCC1_WO2 _L_(5) -#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) -#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) -#define PIN_PB26F_TCC1_WO2 _L_(58) /**< \brief TCC1 signal: WO2 on PB26 mux F */ -#define MUX_PB26F_TCC1_WO2 _L_(5) -#define PINMUX_PB26F_TCC1_WO2 ((PIN_PB26F_TCC1_WO2 << 16) | MUX_PB26F_TCC1_WO2) -#define PORT_PB26F_TCC1_WO2 (_UL_(1) << 26) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ -#define MUX_PB21F_TCC1_WO3 _L_(5) -#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) -#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) -#define PIN_PB27F_TCC1_WO3 _L_(59) /**< \brief TCC1 signal: WO3 on PB27 mux F */ -#define MUX_PB27F_TCC1_WO3 _L_(5) -#define PINMUX_PB27F_TCC1_WO3 ((PIN_PB27F_TCC1_WO3 << 16) | MUX_PB27F_TCC1_WO3) -#define PORT_PB27F_TCC1_WO3 (_UL_(1) << 27) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ -#define MUX_PC10G_TCC1_WO4 _L_(6) -#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) -#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PB28F_TCC1_WO4 _L_(60) /**< \brief TCC1 signal: WO4 on PB28 mux F */ -#define MUX_PB28F_TCC1_WO4 _L_(5) -#define PINMUX_PB28F_TCC1_WO4 ((PIN_PB28F_TCC1_WO4 << 16) | MUX_PB28F_TCC1_WO4) -#define PORT_PB28F_TCC1_WO4 (_UL_(1) << 28) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ -#define MUX_PC11G_TCC1_WO5 _L_(6) -#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) -#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PB29F_TCC1_WO5 _L_(61) /**< \brief TCC1 signal: WO5 on PB29 mux F */ -#define MUX_PB29F_TCC1_WO5 _L_(5) -#define PINMUX_PB29F_TCC1_WO5 ((PIN_PB29F_TCC1_WO5 << 16) | MUX_PB29F_TCC1_WO5) -#define PORT_PB29F_TCC1_WO5 (_UL_(1) << 29) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ -#define MUX_PC12G_TCC1_WO6 _L_(6) -#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) -#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ -#define MUX_PC13G_TCC1_WO7 _L_(6) -#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) -#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ -#define MUX_PB18G_PDEC_QDI0 _L_(6) -#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) -#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ -#define MUX_PC16G_PDEC_QDI0 _L_(6) -#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) -#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ -#define MUX_PB19G_PDEC_QDI1 _L_(6) -#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) -#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) -#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ -#define MUX_PB24G_PDEC_QDI1 _L_(6) -#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) -#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) -#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ -#define MUX_PC17G_PDEC_QDI1 _L_(6) -#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) -#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ -#define MUX_PB20G_PDEC_QDI2 _L_(6) -#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) -#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) -#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ -#define MUX_PB25G_PDEC_QDI2 _L_(6) -#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) -#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) -#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ -#define MUX_PC18G_PDEC_QDI2 _L_(6) -#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) -#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ -#define MUX_PB24M_AC_CMP0 _L_(12) -#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) -#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ -#define MUX_PB25M_AC_CMP1 _L_(12) -#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) -#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ -#define MUX_PC27N_CCL_IN4 _L_(13) -#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) -#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ -#define MUX_PC28N_CCL_IN5 _L_(13) -#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) -#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ -#define MUX_PC20N_CCL_IN9 _L_(13) -#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) -#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ -#define MUX_PC21N_CCL_IN10 _L_(13) -#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) -#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB27D_SERCOM4_PAD0 _L_(59) /**< \brief SERCOM4 signal: PAD0 on PB27 mux D */ -#define MUX_PB27D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB27D_SERCOM4_PAD0 ((PIN_PB27D_SERCOM4_PAD0 << 16) | MUX_PB27D_SERCOM4_PAD0) -#define PORT_PB27D_SERCOM4_PAD0 (_UL_(1) << 27) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB26D_SERCOM4_PAD1 _L_(58) /**< \brief SERCOM4 signal: PAD1 on PB26 mux D */ -#define MUX_PB26D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB26D_SERCOM4_PAD1 ((PIN_PB26D_SERCOM4_PAD1 << 16) | MUX_PB26D_SERCOM4_PAD1) -#define PORT_PB26D_SERCOM4_PAD1 (_UL_(1) << 26) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB28D_SERCOM4_PAD2 _L_(60) /**< \brief SERCOM4 signal: PAD2 on PB28 mux D */ -#define MUX_PB28D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB28D_SERCOM4_PAD2 ((PIN_PB28D_SERCOM4_PAD2 << 16) | MUX_PB28D_SERCOM4_PAD2) -#define PORT_PB28D_SERCOM4_PAD2 (_UL_(1) << 28) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PB29D_SERCOM4_PAD3 _L_(61) /**< \brief SERCOM4 signal: PAD3 on PB29 mux D */ -#define MUX_PB29D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB29D_SERCOM4_PAD3 ((PIN_PB29D_SERCOM4_PAD3 << 16) | MUX_PB29D_SERCOM4_PAD3) -#define PORT_PB29D_SERCOM4_PAD3 (_UL_(1) << 29) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ -#define MUX_PB18C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) -#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ -#define MUX_PB19C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) -#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM6 peripheral ========== */ -#define PIN_PD09D_SERCOM6_PAD0 _L_(105) /**< \brief SERCOM6 signal: PAD0 on PD09 mux D */ -#define MUX_PD09D_SERCOM6_PAD0 _L_(3) -#define PINMUX_PD09D_SERCOM6_PAD0 ((PIN_PD09D_SERCOM6_PAD0 << 16) | MUX_PD09D_SERCOM6_PAD0) -#define PORT_PD09D_SERCOM6_PAD0 (_UL_(1) << 9) -#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ -#define MUX_PC13D_SERCOM6_PAD0 _L_(3) -#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) -#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) -#define PIN_PC04C_SERCOM6_PAD0 _L_(68) /**< \brief SERCOM6 signal: PAD0 on PC04 mux C */ -#define MUX_PC04C_SERCOM6_PAD0 _L_(2) -#define PINMUX_PC04C_SERCOM6_PAD0 ((PIN_PC04C_SERCOM6_PAD0 << 16) | MUX_PC04C_SERCOM6_PAD0) -#define PORT_PC04C_SERCOM6_PAD0 (_UL_(1) << 4) -#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ -#define MUX_PC16C_SERCOM6_PAD0 _L_(2) -#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) -#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) -#define PIN_PD08D_SERCOM6_PAD1 _L_(104) /**< \brief SERCOM6 signal: PAD1 on PD08 mux D */ -#define MUX_PD08D_SERCOM6_PAD1 _L_(3) -#define PINMUX_PD08D_SERCOM6_PAD1 ((PIN_PD08D_SERCOM6_PAD1 << 16) | MUX_PD08D_SERCOM6_PAD1) -#define PORT_PD08D_SERCOM6_PAD1 (_UL_(1) << 8) -#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ -#define MUX_PC12D_SERCOM6_PAD1 _L_(3) -#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) -#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) -#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ -#define MUX_PC05C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) -#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) -#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ -#define MUX_PC17C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) -#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) -#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ -#define MUX_PC14D_SERCOM6_PAD2 _L_(3) -#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) -#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) -#define PIN_PD10D_SERCOM6_PAD2 _L_(106) /**< \brief SERCOM6 signal: PAD2 on PD10 mux D */ -#define MUX_PD10D_SERCOM6_PAD2 _L_(3) -#define PINMUX_PD10D_SERCOM6_PAD2 ((PIN_PD10D_SERCOM6_PAD2 << 16) | MUX_PD10D_SERCOM6_PAD2) -#define PORT_PD10D_SERCOM6_PAD2 (_UL_(1) << 10) -#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ -#define MUX_PC06C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) -#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) -#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ -#define MUX_PC10C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) -#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) -#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ -#define MUX_PC18C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) -#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) -#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ -#define MUX_PC15D_SERCOM6_PAD3 _L_(3) -#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) -#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) -#define PIN_PD11D_SERCOM6_PAD3 _L_(107) /**< \brief SERCOM6 signal: PAD3 on PD11 mux D */ -#define MUX_PD11D_SERCOM6_PAD3 _L_(3) -#define PINMUX_PD11D_SERCOM6_PAD3 ((PIN_PD11D_SERCOM6_PAD3 << 16) | MUX_PD11D_SERCOM6_PAD3) -#define PORT_PD11D_SERCOM6_PAD3 (_UL_(1) << 11) -#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ -#define MUX_PC07C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) -#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) -#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ -#define MUX_PC11C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) -#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) -#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ -#define MUX_PC19C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) -#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM7 peripheral ========== */ -#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ -#define MUX_PB21D_SERCOM7_PAD0 _L_(3) -#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) -#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) -#define PIN_PD08C_SERCOM7_PAD0 _L_(104) /**< \brief SERCOM7 signal: PAD0 on PD08 mux C */ -#define MUX_PD08C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PD08C_SERCOM7_PAD0 ((PIN_PD08C_SERCOM7_PAD0 << 16) | MUX_PD08C_SERCOM7_PAD0) -#define PORT_PD08C_SERCOM7_PAD0 (_UL_(1) << 8) -#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ -#define MUX_PB30C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) -#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) -#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ -#define MUX_PC12C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) -#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) -#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ -#define MUX_PB20D_SERCOM7_PAD1 _L_(3) -#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) -#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) -#define PIN_PD09C_SERCOM7_PAD1 _L_(105) /**< \brief SERCOM7 signal: PAD1 on PD09 mux C */ -#define MUX_PD09C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PD09C_SERCOM7_PAD1 ((PIN_PD09C_SERCOM7_PAD1 << 16) | MUX_PD09C_SERCOM7_PAD1) -#define PORT_PD09C_SERCOM7_PAD1 (_UL_(1) << 9) -#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ -#define MUX_PB31C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) -#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) -#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ -#define MUX_PC13C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) -#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) -#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ -#define MUX_PB18D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) -#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) -#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ -#define MUX_PC10D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) -#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) -#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ -#define MUX_PC14C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) -#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) -#define PIN_PD10C_SERCOM7_PAD2 _L_(106) /**< \brief SERCOM7 signal: PAD2 on PD10 mux C */ -#define MUX_PD10C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PD10C_SERCOM7_PAD2 ((PIN_PD10C_SERCOM7_PAD2 << 16) | MUX_PD10C_SERCOM7_PAD2) -#define PORT_PD10C_SERCOM7_PAD2 (_UL_(1) << 10) -#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ -#define MUX_PA30C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) -#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) -#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ -#define MUX_PB19D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) -#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) -#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ -#define MUX_PC11D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) -#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) -#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ -#define MUX_PC15C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) -#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) -#define PIN_PD11C_SERCOM7_PAD3 _L_(107) /**< \brief SERCOM7 signal: PAD3 on PD11 mux C */ -#define MUX_PD11C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PD11C_SERCOM7_PAD3 ((PIN_PD11C_SERCOM7_PAD3 << 16) | MUX_PD11C_SERCOM7_PAD3) -#define PORT_PD11C_SERCOM7_PAD3 (_UL_(1) << 11) -#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ -#define MUX_PA31C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) -#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC6 peripheral ========== */ -#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ -#define MUX_PA30E_TC6_WO0 _L_(4) -#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) -#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) -#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ -#define MUX_PB02E_TC6_WO0 _L_(4) -#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) -#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) -#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ -#define MUX_PB16E_TC6_WO0 _L_(4) -#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) -#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) -#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ -#define MUX_PA31E_TC6_WO1 _L_(4) -#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) -#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) -#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ -#define MUX_PB03E_TC6_WO1 _L_(4) -#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) -#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) -#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ -#define MUX_PB17E_TC6_WO1 _L_(4) -#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) -#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC7 peripheral ========== */ -#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ -#define MUX_PA20E_TC7_WO0 _L_(4) -#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) -#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) -#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ -#define MUX_PB00E_TC7_WO0 _L_(4) -#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) -#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) -#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ -#define MUX_PB22E_TC7_WO0 _L_(4) -#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) -#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) -#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ -#define MUX_PA21E_TC7_WO1 _L_(4) -#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) -#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) -#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ -#define MUX_PB01E_TC7_WO1 _L_(4) -#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) -#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) -#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ -#define MUX_PB23E_TC7_WO1 _L_(4) -#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) -#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ -#define MUX_PC02B_ADC1_AIN4 _L_(1) -#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) -#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) -#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ -#define MUX_PC03B_ADC1_AIN5 _L_(1) -#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) -#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ -#define MUX_PC00B_ADC1_AIN10 _L_(1) -#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) -#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) -#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ -#define MUX_PC01B_ADC1_AIN11 _L_(1) -#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) -#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) -#define PIN_PC30B_ADC1_AIN12 _L_(94) /**< \brief ADC1 signal: AIN12 on PC30 mux B */ -#define MUX_PC30B_ADC1_AIN12 _L_(1) -#define PINMUX_PC30B_ADC1_AIN12 ((PIN_PC30B_ADC1_AIN12 << 16) | MUX_PC30B_ADC1_AIN12) -#define PORT_PC30B_ADC1_AIN12 (_UL_(1) << 30) -#define PIN_PC31B_ADC1_AIN13 _L_(95) /**< \brief ADC1 signal: AIN13 on PC31 mux B */ -#define MUX_PC31B_ADC1_AIN13 _L_(1) -#define PINMUX_PC31B_ADC1_AIN13 ((PIN_PC31B_ADC1_AIN13 << 16) | MUX_PC31B_ADC1_AIN13) -#define PORT_PC31B_ADC1_AIN13 (_UL_(1) << 31) -#define PIN_PD00B_ADC1_AIN14 _L_(96) /**< \brief ADC1 signal: AIN14 on PD00 mux B */ -#define MUX_PD00B_ADC1_AIN14 _L_(1) -#define PINMUX_PD00B_ADC1_AIN14 ((PIN_PD00B_ADC1_AIN14 << 16) | MUX_PD00B_ADC1_AIN14) -#define PORT_PD00B_ADC1_AIN14 (_UL_(1) << 0) -#define PIN_PD01B_ADC1_AIN15 _L_(97) /**< \brief ADC1 signal: AIN15 on PD01 mux B */ -#define MUX_PD01B_ADC1_AIN15 _L_(1) -#define PINMUX_PD01B_ADC1_AIN15 ((PIN_PD01B_ADC1_AIN15 << 16) | MUX_PD01B_ADC1_AIN15) -#define PORT_PD01B_ADC1_AIN15 (_UL_(1) << 1) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB29J_I2S_MCK1 _L_(61) /**< \brief I2S signal: MCK1 on PB29 mux J */ -#define MUX_PB29J_I2S_MCK1 _L_(9) -#define PINMUX_PB29J_I2S_MCK1 ((PIN_PB29J_I2S_MCK1 << 16) | MUX_PB29J_I2S_MCK1) -#define PORT_PB29J_I2S_MCK1 (_UL_(1) << 29) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB28J_I2S_SCK1 _L_(60) /**< \brief I2S signal: SCK1 on PB28 mux J */ -#define MUX_PB28J_I2S_SCK1 _L_(9) -#define PINMUX_PB28J_I2S_SCK1 ((PIN_PB28J_I2S_SCK1 << 16) | MUX_PB28J_I2S_SCK1) -#define PORT_PB28J_I2S_SCK1 (_UL_(1) << 28) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ -#define MUX_PC12K_PCC_DATA10 _L_(10) -#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) -#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) -#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ -#define MUX_PC13K_PCC_DATA11 _L_(10) -#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) -#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) -#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ -#define MUX_PC14K_PCC_DATA12 _L_(10) -#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) -#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) -#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ -#define MUX_PC15K_PCC_DATA13 _L_(10) -#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) -#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ -#define MUX_PC06I_SDHC0_SDCD _L_(8) -#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) -#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ -#define MUX_PC07I_SDHC0_SDWP _L_(8) -#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) -#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) -/* ========== PORT definition for SDHC1 peripheral ========== */ -#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ -#define MUX_PB16I_SDHC1_SDCD _L_(8) -#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) -#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) -#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ -#define MUX_PC20I_SDHC1_SDCD _L_(8) -#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) -#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) -#define PIN_PD20I_SDHC1_SDCD _L_(116) /**< \brief SDHC1 signal: SDCD on PD20 mux I */ -#define MUX_PD20I_SDHC1_SDCD _L_(8) -#define PINMUX_PD20I_SDHC1_SDCD ((PIN_PD20I_SDHC1_SDCD << 16) | MUX_PD20I_SDHC1_SDCD) -#define PORT_PD20I_SDHC1_SDCD (_UL_(1) << 20) -#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ -#define MUX_PA21I_SDHC1_SDCK _L_(8) -#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) -#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) -#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ -#define MUX_PA20I_SDHC1_SDCMD _L_(8) -#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) -#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) -#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ -#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) -#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) -#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) -#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ -#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) -#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) -#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) -#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ -#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) -#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) -#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) -#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ -#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) -#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) -#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) -#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ -#define MUX_PB17I_SDHC1_SDWP _L_(8) -#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) -#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) -#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ -#define MUX_PC21I_SDHC1_SDWP _L_(8) -#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) -#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) -#define PIN_PD21I_SDHC1_SDWP _L_(117) /**< \brief SDHC1 signal: SDWP on PD21 mux I */ -#define MUX_PD21I_SDHC1_SDWP _L_(8) -#define PINMUX_PD21I_SDHC1_SDWP ((PIN_PD21I_SDHC1_SDWP << 16) | MUX_PD21I_SDHC1_SDWP) -#define PORT_PD21I_SDHC1_SDWP (_UL_(1) << 21) - -#endif /* _SAMD51P19A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51P19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51P19A_PIO_ +#define _SAMD51P19A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ +#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ +#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ +#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ +#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ +#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ +#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ +#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ +#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ +#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ +#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ +#define PIN_PB26 58 /**< \brief Pin Number for PB26 */ +#define PORT_PB26 (_UL_(1) << 26) /**< \brief PORT Mask for PB26 */ +#define PIN_PB27 59 /**< \brief Pin Number for PB27 */ +#define PORT_PB27 (_UL_(1) << 27) /**< \brief PORT Mask for PB27 */ +#define PIN_PB28 60 /**< \brief Pin Number for PB28 */ +#define PORT_PB28 (_UL_(1) << 28) /**< \brief PORT Mask for PB28 */ +#define PIN_PB29 61 /**< \brief Pin Number for PB29 */ +#define PORT_PB29 (_UL_(1) << 29) /**< \brief PORT Mask for PB29 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ +#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ +#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ +#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ +#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ +#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ +#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ +#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ +#define PIN_PC04 68 /**< \brief Pin Number for PC04 */ +#define PORT_PC04 (_UL_(1) << 4) /**< \brief PORT Mask for PC04 */ +#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ +#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ +#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ +#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ +#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ +#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ +#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ +#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ +#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ +#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ +#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ +#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ +#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ +#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ +#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ +#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ +#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ +#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ +#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ +#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ +#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ +#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ +#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ +#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ +#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ +#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ +#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ +#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ +#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ +#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ +#define PIN_PC22 86 /**< \brief Pin Number for PC22 */ +#define PORT_PC22 (_UL_(1) << 22) /**< \brief PORT Mask for PC22 */ +#define PIN_PC23 87 /**< \brief Pin Number for PC23 */ +#define PORT_PC23 (_UL_(1) << 23) /**< \brief PORT Mask for PC23 */ +#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ +#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ +#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ +#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ +#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ +#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ +#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ +#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ +#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ +#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ +#define PIN_PC30 94 /**< \brief Pin Number for PC30 */ +#define PORT_PC30 (_UL_(1) << 30) /**< \brief PORT Mask for PC30 */ +#define PIN_PC31 95 /**< \brief Pin Number for PC31 */ +#define PORT_PC31 (_UL_(1) << 31) /**< \brief PORT Mask for PC31 */ +#define PIN_PD00 96 /**< \brief Pin Number for PD00 */ +#define PORT_PD00 (_UL_(1) << 0) /**< \brief PORT Mask for PD00 */ +#define PIN_PD01 97 /**< \brief Pin Number for PD01 */ +#define PORT_PD01 (_UL_(1) << 1) /**< \brief PORT Mask for PD01 */ +#define PIN_PD08 104 /**< \brief Pin Number for PD08 */ +#define PORT_PD08 (_UL_(1) << 8) /**< \brief PORT Mask for PD08 */ +#define PIN_PD09 105 /**< \brief Pin Number for PD09 */ +#define PORT_PD09 (_UL_(1) << 9) /**< \brief PORT Mask for PD09 */ +#define PIN_PD10 106 /**< \brief Pin Number for PD10 */ +#define PORT_PD10 (_UL_(1) << 10) /**< \brief PORT Mask for PD10 */ +#define PIN_PD11 107 /**< \brief Pin Number for PD11 */ +#define PORT_PD11 (_UL_(1) << 11) /**< \brief PORT Mask for PD11 */ +#define PIN_PD12 108 /**< \brief Pin Number for PD12 */ +#define PORT_PD12 (_UL_(1) << 12) /**< \brief PORT Mask for PD12 */ +#define PIN_PD20 116 /**< \brief Pin Number for PD20 */ +#define PORT_PD20 (_UL_(1) << 20) /**< \brief PORT Mask for PD20 */ +#define PIN_PD21 117 /**< \brief Pin Number for PD21 */ +#define PORT_PD21 (_UL_(1) << 21) /**< \brief PORT Mask for PD21 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ +#define MUX_PC27M_CM4_SWO _L_(12) +#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) +#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ +#define MUX_PC27H_CM4_TRACECLK _L_(7) +#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) +#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) +#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ +#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) +#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) +#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) +#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ +#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) +#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) +#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) +#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ +#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) +#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) +#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) +#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ +#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) +#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) +#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ +#define MUX_PB18M_GCLK_IO4 _L_(12) +#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) +#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ +#define MUX_PB19M_GCLK_IO5 _L_(12) +#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) +#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ +#define MUX_PB20M_GCLK_IO6 _L_(12) +#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) +#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ +#define MUX_PB21M_GCLK_IO7 _L_(12) +#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) +#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ +#define MUX_PC00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) +#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ +#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ +#define MUX_PC16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) +#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ +#define PIN_PD00A_EIC_EXTINT0 _L_(96) /**< \brief EIC signal: EXTINT0 on PD00 mux A */ +#define MUX_PD00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PD00A_EIC_EXTINT0 ((PIN_PD00A_EIC_EXTINT0 << 16) | MUX_PD00A_EIC_EXTINT0) +#define PORT_PD00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PD00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PD00 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ +#define MUX_PC01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) +#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ +#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ +#define MUX_PC17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) +#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ +#define PIN_PD01A_EIC_EXTINT1 _L_(97) /**< \brief EIC signal: EXTINT1 on PD01 mux A */ +#define MUX_PD01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PD01A_EIC_EXTINT1 ((PIN_PD01A_EIC_EXTINT1 << 16) | MUX_PD01A_EIC_EXTINT1) +#define PORT_PD01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PD01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PD01 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ +#define MUX_PB18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) +#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ +#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ +#define MUX_PC02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) +#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ +#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ +#define MUX_PC18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) +#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ +#define MUX_PB19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) +#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ +#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ +#define MUX_PC03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) +#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ +#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ +#define MUX_PC19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) +#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ +#define PIN_PD08A_EIC_EXTINT3 _L_(104) /**< \brief EIC signal: EXTINT3 on PD08 mux A */ +#define MUX_PD08A_EIC_EXTINT3 _L_(0) +#define PINMUX_PD08A_EIC_EXTINT3 ((PIN_PD08A_EIC_EXTINT3 << 16) | MUX_PD08A_EIC_EXTINT3) +#define PORT_PD08A_EIC_EXTINT3 (_UL_(1) << 8) +#define PIN_PD08A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PD08 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ +#define MUX_PB20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) +#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ +#define PIN_PC04A_EIC_EXTINT4 _L_(68) /**< \brief EIC signal: EXTINT4 on PC04 mux A */ +#define MUX_PC04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PC04A_EIC_EXTINT4 ((PIN_PC04A_EIC_EXTINT4 << 16) | MUX_PC04A_EIC_EXTINT4) +#define PORT_PC04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PC04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC04 External Interrupt Line */ +#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ +#define MUX_PC20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) +#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ +#define PIN_PD09A_EIC_EXTINT4 _L_(105) /**< \brief EIC signal: EXTINT4 on PD09 mux A */ +#define MUX_PD09A_EIC_EXTINT4 _L_(0) +#define PINMUX_PD09A_EIC_EXTINT4 ((PIN_PD09A_EIC_EXTINT4 << 16) | MUX_PD09A_EIC_EXTINT4) +#define PORT_PD09A_EIC_EXTINT4 (_UL_(1) << 9) +#define PIN_PD09A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PD09 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ +#define MUX_PB21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) +#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ +#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ +#define MUX_PC05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) +#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ +#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ +#define MUX_PC21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) +#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ +#define PIN_PD10A_EIC_EXTINT5 _L_(106) /**< \brief EIC signal: EXTINT5 on PD10 mux A */ +#define MUX_PD10A_EIC_EXTINT5 _L_(0) +#define PINMUX_PD10A_EIC_EXTINT5 ((PIN_PD10A_EIC_EXTINT5 << 16) | MUX_PD10A_EIC_EXTINT5) +#define PORT_PD10A_EIC_EXTINT5 (_UL_(1) << 10) +#define PIN_PD10A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PD10 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ +#define MUX_PC06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) +#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ +#define PIN_PC22A_EIC_EXTINT6 _L_(86) /**< \brief EIC signal: EXTINT6 on PC22 mux A */ +#define MUX_PC22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PC22A_EIC_EXTINT6 ((PIN_PC22A_EIC_EXTINT6 << 16) | MUX_PC22A_EIC_EXTINT6) +#define PORT_PC22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PC22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC22 External Interrupt Line */ +#define PIN_PD11A_EIC_EXTINT6 _L_(107) /**< \brief EIC signal: EXTINT6 on PD11 mux A */ +#define MUX_PD11A_EIC_EXTINT6 _L_(0) +#define PINMUX_PD11A_EIC_EXTINT6 ((PIN_PD11A_EIC_EXTINT6 << 16) | MUX_PD11A_EIC_EXTINT6) +#define PORT_PD11A_EIC_EXTINT6 (_UL_(1) << 11) +#define PIN_PD11A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PD11 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PC23A_EIC_EXTINT7 _L_(87) /**< \brief EIC signal: EXTINT7 on PC23 mux A */ +#define MUX_PC23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PC23A_EIC_EXTINT7 ((PIN_PC23A_EIC_EXTINT7 << 16) | MUX_PC23A_EIC_EXTINT7) +#define PORT_PC23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PC23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PC23 External Interrupt Line */ +#define PIN_PD12A_EIC_EXTINT7 _L_(108) /**< \brief EIC signal: EXTINT7 on PD12 mux A */ +#define MUX_PD12A_EIC_EXTINT7 _L_(0) +#define PINMUX_PD12A_EIC_EXTINT7 ((PIN_PD12A_EIC_EXTINT7 << 16) | MUX_PD12A_EIC_EXTINT7) +#define PORT_PD12A_EIC_EXTINT7 (_UL_(1) << 12) +#define PIN_PD12A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PD12 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ +#define MUX_PB24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) +#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ +#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ +#define MUX_PC24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) +#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ +#define MUX_PB25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) +#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ +#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ +#define MUX_PC07A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) +#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) +#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ +#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ +#define MUX_PC25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) +#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ +#define MUX_PC10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) +#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ +#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ +#define MUX_PC26A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) +#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) +#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ +#define PIN_PD20A_EIC_EXTINT10 _L_(116) /**< \brief EIC signal: EXTINT10 on PD20 mux A */ +#define MUX_PD20A_EIC_EXTINT10 _L_(0) +#define PINMUX_PD20A_EIC_EXTINT10 ((PIN_PD20A_EIC_EXTINT10 << 16) | MUX_PD20A_EIC_EXTINT10) +#define PORT_PD20A_EIC_EXTINT10 (_UL_(1) << 20) +#define PIN_PD20A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PD20 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ +#define MUX_PC11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) +#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ +#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ +#define MUX_PC27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) +#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ +#define PIN_PD21A_EIC_EXTINT11 _L_(117) /**< \brief EIC signal: EXTINT11 on PD21 mux A */ +#define MUX_PD21A_EIC_EXTINT11 _L_(0) +#define PINMUX_PD21A_EIC_EXTINT11 ((PIN_PD21A_EIC_EXTINT11 << 16) | MUX_PD21A_EIC_EXTINT11) +#define PORT_PD21A_EIC_EXTINT11 (_UL_(1) << 21) +#define PIN_PD21A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PD21 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PB26A_EIC_EXTINT12 _L_(58) /**< \brief EIC signal: EXTINT12 on PB26 mux A */ +#define MUX_PB26A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB26A_EIC_EXTINT12 ((PIN_PB26A_EIC_EXTINT12 << 16) | MUX_PB26A_EIC_EXTINT12) +#define PORT_PB26A_EIC_EXTINT12 (_UL_(1) << 26) +#define PIN_PB26A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB26 External Interrupt Line */ +#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ +#define MUX_PC12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) +#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ +#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ +#define MUX_PC28A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) +#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) +#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PB27A_EIC_EXTINT13 _L_(59) /**< \brief EIC signal: EXTINT13 on PB27 mux A */ +#define MUX_PB27A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB27A_EIC_EXTINT13 ((PIN_PB27A_EIC_EXTINT13 << 16) | MUX_PB27A_EIC_EXTINT13) +#define PORT_PB27A_EIC_EXTINT13 (_UL_(1) << 27) +#define PIN_PB27A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB27 External Interrupt Line */ +#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ +#define MUX_PC13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) +#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB28A_EIC_EXTINT14 _L_(60) /**< \brief EIC signal: EXTINT14 on PB28 mux A */ +#define MUX_PB28A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB28A_EIC_EXTINT14 ((PIN_PB28A_EIC_EXTINT14 << 16) | MUX_PB28A_EIC_EXTINT14) +#define PORT_PB28A_EIC_EXTINT14 (_UL_(1) << 28) +#define PIN_PB28A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB28 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ +#define MUX_PC14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) +#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ +#define PIN_PC30A_EIC_EXTINT14 _L_(94) /**< \brief EIC signal: EXTINT14 on PC30 mux A */ +#define MUX_PC30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PC30A_EIC_EXTINT14 ((PIN_PC30A_EIC_EXTINT14 << 16) | MUX_PC30A_EIC_EXTINT14) +#define PORT_PC30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PC30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB29A_EIC_EXTINT15 _L_(61) /**< \brief EIC signal: EXTINT15 on PB29 mux A */ +#define MUX_PB29A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB29A_EIC_EXTINT15 ((PIN_PB29A_EIC_EXTINT15 << 16) | MUX_PB29A_EIC_EXTINT15) +#define PORT_PB29A_EIC_EXTINT15 (_UL_(1) << 29) +#define PIN_PB29A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB29 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ +#define MUX_PC15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) +#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ +#define PIN_PC31A_EIC_EXTINT15 _L_(95) /**< \brief EIC signal: EXTINT15 on PC31 mux A */ +#define MUX_PC31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PC31A_EIC_EXTINT15 ((PIN_PC31A_EIC_EXTINT15 << 16) | MUX_PC31A_EIC_EXTINT15) +#define PORT_PC31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PC31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ +#define MUX_PC17D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) +#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ +#define MUX_PB24C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) +#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ +#define MUX_PC16D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) +#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ +#define MUX_PB25C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) +#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ +#define MUX_PC18D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) +#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ +#define MUX_PC24C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) +#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ +#define MUX_PC19D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) +#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ +#define MUX_PC25C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) +#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PC22C_SERCOM1_PAD0 _L_(86) /**< \brief SERCOM1 signal: PAD0 on PC22 mux C */ +#define MUX_PC22C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PC22C_SERCOM1_PAD0 ((PIN_PC22C_SERCOM1_PAD0 << 16) | MUX_PC22C_SERCOM1_PAD0) +#define PORT_PC22C_SERCOM1_PAD0 (_UL_(1) << 22) +#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ +#define MUX_PC27C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) +#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PC23C_SERCOM1_PAD1 _L_(87) /**< \brief SERCOM1 signal: PAD1 on PC23 mux C */ +#define MUX_PC23C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PC23C_SERCOM1_PAD1 ((PIN_PC23C_SERCOM1_PAD1 << 16) | MUX_PC23C_SERCOM1_PAD1) +#define PORT_PC23C_SERCOM1_PAD1 (_UL_(1) << 23) +#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ +#define MUX_PC28C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) +#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PD20C_SERCOM1_PAD2 _L_(116) /**< \brief SERCOM1 signal: PAD2 on PD20 mux C */ +#define MUX_PD20C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PD20C_SERCOM1_PAD2 ((PIN_PD20C_SERCOM1_PAD2 << 16) | MUX_PD20C_SERCOM1_PAD2) +#define PORT_PD20C_SERCOM1_PAD2 (_UL_(1) << 20) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +#define PIN_PD21C_SERCOM1_PAD3 _L_(117) /**< \brief SERCOM1 signal: PAD3 on PD21 mux C */ +#define MUX_PD21C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PD21C_SERCOM1_PAD3 ((PIN_PD21C_SERCOM1_PAD3 << 16) | MUX_PD21C_SERCOM1_PAD3) +#define PORT_PD21C_SERCOM1_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ +#define MUX_PB25D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) +#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PB26C_SERCOM2_PAD0 _L_(58) /**< \brief SERCOM2 signal: PAD0 on PB26 mux C */ +#define MUX_PB26C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PB26C_SERCOM2_PAD0 ((PIN_PB26C_SERCOM2_PAD0 << 16) | MUX_PB26C_SERCOM2_PAD0) +#define PORT_PB26C_SERCOM2_PAD0 (_UL_(1) << 26) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ +#define MUX_PB24D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) +#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PB27C_SERCOM2_PAD1 _L_(59) /**< \brief SERCOM2 signal: PAD1 on PB27 mux C */ +#define MUX_PB27C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PB27C_SERCOM2_PAD1 ((PIN_PB27C_SERCOM2_PAD1 << 16) | MUX_PB27C_SERCOM2_PAD1) +#define PORT_PB27C_SERCOM2_PAD1 (_UL_(1) << 27) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ +#define MUX_PC24D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) +#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) +#define PIN_PB28C_SERCOM2_PAD2 _L_(60) /**< \brief SERCOM2 signal: PAD2 on PB28 mux C */ +#define MUX_PB28C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PB28C_SERCOM2_PAD2 ((PIN_PB28C_SERCOM2_PAD2 << 16) | MUX_PB28C_SERCOM2_PAD2) +#define PORT_PB28C_SERCOM2_PAD2 (_UL_(1) << 28) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ +#define MUX_PC25D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) +#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) +#define PIN_PB29C_SERCOM2_PAD3 _L_(61) /**< \brief SERCOM2 signal: PAD3 on PB29 mux C */ +#define MUX_PB29C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PB29C_SERCOM2_PAD3 ((PIN_PB29C_SERCOM2_PAD3 << 16) | MUX_PB29C_SERCOM2_PAD3) +#define PORT_PB29C_SERCOM2_PAD3 (_UL_(1) << 29) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PC23D_SERCOM3_PAD0 _L_(87) /**< \brief SERCOM3 signal: PAD0 on PC23 mux D */ +#define MUX_PC23D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PC23D_SERCOM3_PAD0 ((PIN_PC23D_SERCOM3_PAD0 << 16) | MUX_PC23D_SERCOM3_PAD0) +#define PORT_PC23D_SERCOM3_PAD0 (_UL_(1) << 23) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ +#define MUX_PB20C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) +#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PC22D_SERCOM3_PAD1 _L_(86) /**< \brief SERCOM3 signal: PAD1 on PC22 mux D */ +#define MUX_PC22D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PC22D_SERCOM3_PAD1 ((PIN_PC22D_SERCOM3_PAD1 << 16) | MUX_PC22D_SERCOM3_PAD1) +#define PORT_PC22D_SERCOM3_PAD1 (_UL_(1) << 22) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ +#define MUX_PB21C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) +#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PD20D_SERCOM3_PAD2 _L_(116) /**< \brief SERCOM3 signal: PAD2 on PD20 mux D */ +#define MUX_PD20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PD20D_SERCOM3_PAD2 ((PIN_PD20D_SERCOM3_PAD2 << 16) | MUX_PD20D_SERCOM3_PAD2) +#define PORT_PD20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PD21D_SERCOM3_PAD3 _L_(117) /**< \brief SERCOM3 signal: PAD3 on PD21 mux D */ +#define MUX_PD21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PD21D_SERCOM3_PAD3 ((PIN_PD21D_SERCOM3_PAD3 << 16) | MUX_PD21D_SERCOM3_PAD3) +#define PORT_PD21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PC04F_TCC0_WO0 _L_(68) /**< \brief TCC0 signal: WO0 on PC04 mux F */ +#define MUX_PC04F_TCC0_WO0 _L_(5) +#define PINMUX_PC04F_TCC0_WO0 ((PIN_PC04F_TCC0_WO0 << 16) | MUX_PC04F_TCC0_WO0) +#define PORT_PC04F_TCC0_WO0 (_UL_(1) << 4) +#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ +#define MUX_PC10F_TCC0_WO0 _L_(5) +#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) +#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) +#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ +#define MUX_PC16F_TCC0_WO0 _L_(5) +#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) +#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ +#define MUX_PC11F_TCC0_WO1 _L_(5) +#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) +#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) +#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ +#define MUX_PC17F_TCC0_WO1 _L_(5) +#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) +#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) +#define PIN_PD08F_TCC0_WO1 _L_(104) /**< \brief TCC0 signal: WO1 on PD08 mux F */ +#define MUX_PD08F_TCC0_WO1 _L_(5) +#define PINMUX_PD08F_TCC0_WO1 ((PIN_PD08F_TCC0_WO1 << 16) | MUX_PD08F_TCC0_WO1) +#define PORT_PD08F_TCC0_WO1 (_UL_(1) << 8) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ +#define MUX_PC12F_TCC0_WO2 _L_(5) +#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) +#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) +#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ +#define MUX_PC18F_TCC0_WO2 _L_(5) +#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) +#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) +#define PIN_PD09F_TCC0_WO2 _L_(105) /**< \brief TCC0 signal: WO2 on PD09 mux F */ +#define MUX_PD09F_TCC0_WO2 _L_(5) +#define PINMUX_PD09F_TCC0_WO2 ((PIN_PD09F_TCC0_WO2 << 16) | MUX_PD09F_TCC0_WO2) +#define PORT_PD09F_TCC0_WO2 (_UL_(1) << 9) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ +#define MUX_PC13F_TCC0_WO3 _L_(5) +#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) +#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) +#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ +#define MUX_PC19F_TCC0_WO3 _L_(5) +#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) +#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) +#define PIN_PD10F_TCC0_WO3 _L_(106) /**< \brief TCC0 signal: WO3 on PD10 mux F */ +#define MUX_PD10F_TCC0_WO3 _L_(5) +#define PINMUX_PD10F_TCC0_WO3 ((PIN_PD10F_TCC0_WO3 << 16) | MUX_PD10F_TCC0_WO3) +#define PORT_PD10F_TCC0_WO3 (_UL_(1) << 10) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ +#define MUX_PC14F_TCC0_WO4 _L_(5) +#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) +#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) +#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ +#define MUX_PC20F_TCC0_WO4 _L_(5) +#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) +#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) +#define PIN_PD11F_TCC0_WO4 _L_(107) /**< \brief TCC0 signal: WO4 on PD11 mux F */ +#define MUX_PD11F_TCC0_WO4 _L_(5) +#define PINMUX_PD11F_TCC0_WO4 ((PIN_PD11F_TCC0_WO4 << 16) | MUX_PD11F_TCC0_WO4) +#define PORT_PD11F_TCC0_WO4 (_UL_(1) << 11) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ +#define MUX_PC15F_TCC0_WO5 _L_(5) +#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) +#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) +#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ +#define MUX_PC21F_TCC0_WO5 _L_(5) +#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) +#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) +#define PIN_PD12F_TCC0_WO5 _L_(108) /**< \brief TCC0 signal: WO5 on PD12 mux F */ +#define MUX_PD12F_TCC0_WO5 _L_(5) +#define PINMUX_PD12F_TCC0_WO5 ((PIN_PD12F_TCC0_WO5 << 16) | MUX_PD12F_TCC0_WO5) +#define PORT_PD12F_TCC0_WO5 (_UL_(1) << 12) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PC22F_TCC0_WO6 _L_(86) /**< \brief TCC0 signal: WO6 on PC22 mux F */ +#define MUX_PC22F_TCC0_WO6 _L_(5) +#define PINMUX_PC22F_TCC0_WO6 ((PIN_PC22F_TCC0_WO6 << 16) | MUX_PC22F_TCC0_WO6) +#define PORT_PC22F_TCC0_WO6 (_UL_(1) << 22) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +#define PIN_PC23F_TCC0_WO7 _L_(87) /**< \brief TCC0 signal: WO7 on PC23 mux F */ +#define MUX_PC23F_TCC0_WO7 _L_(5) +#define PINMUX_PC23F_TCC0_WO7 ((PIN_PC23F_TCC0_WO7 << 16) | MUX_PC23F_TCC0_WO7) +#define PORT_PC23F_TCC0_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ +#define MUX_PC14G_TCC1_WO0 _L_(6) +#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) +#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ +#define MUX_PB18F_TCC1_WO0 _L_(5) +#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) +#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) +#define PIN_PD20F_TCC1_WO0 _L_(116) /**< \brief TCC1 signal: WO0 on PD20 mux F */ +#define MUX_PD20F_TCC1_WO0 _L_(5) +#define PINMUX_PD20F_TCC1_WO0 ((PIN_PD20F_TCC1_WO0 << 16) | MUX_PD20F_TCC1_WO0) +#define PORT_PD20F_TCC1_WO0 (_UL_(1) << 20) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ +#define MUX_PC15G_TCC1_WO1 _L_(6) +#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) +#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ +#define MUX_PB19F_TCC1_WO1 _L_(5) +#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) +#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) +#define PIN_PD21F_TCC1_WO1 _L_(117) /**< \brief TCC1 signal: WO1 on PD21 mux F */ +#define MUX_PD21F_TCC1_WO1 _L_(5) +#define PINMUX_PD21F_TCC1_WO1 ((PIN_PD21F_TCC1_WO1 << 16) | MUX_PD21F_TCC1_WO1) +#define PORT_PD21F_TCC1_WO1 (_UL_(1) << 21) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ +#define MUX_PB20F_TCC1_WO2 _L_(5) +#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) +#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) +#define PIN_PB26F_TCC1_WO2 _L_(58) /**< \brief TCC1 signal: WO2 on PB26 mux F */ +#define MUX_PB26F_TCC1_WO2 _L_(5) +#define PINMUX_PB26F_TCC1_WO2 ((PIN_PB26F_TCC1_WO2 << 16) | MUX_PB26F_TCC1_WO2) +#define PORT_PB26F_TCC1_WO2 (_UL_(1) << 26) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ +#define MUX_PB21F_TCC1_WO3 _L_(5) +#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) +#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) +#define PIN_PB27F_TCC1_WO3 _L_(59) /**< \brief TCC1 signal: WO3 on PB27 mux F */ +#define MUX_PB27F_TCC1_WO3 _L_(5) +#define PINMUX_PB27F_TCC1_WO3 ((PIN_PB27F_TCC1_WO3 << 16) | MUX_PB27F_TCC1_WO3) +#define PORT_PB27F_TCC1_WO3 (_UL_(1) << 27) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ +#define MUX_PC10G_TCC1_WO4 _L_(6) +#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) +#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PB28F_TCC1_WO4 _L_(60) /**< \brief TCC1 signal: WO4 on PB28 mux F */ +#define MUX_PB28F_TCC1_WO4 _L_(5) +#define PINMUX_PB28F_TCC1_WO4 ((PIN_PB28F_TCC1_WO4 << 16) | MUX_PB28F_TCC1_WO4) +#define PORT_PB28F_TCC1_WO4 (_UL_(1) << 28) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ +#define MUX_PC11G_TCC1_WO5 _L_(6) +#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) +#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PB29F_TCC1_WO5 _L_(61) /**< \brief TCC1 signal: WO5 on PB29 mux F */ +#define MUX_PB29F_TCC1_WO5 _L_(5) +#define PINMUX_PB29F_TCC1_WO5 ((PIN_PB29F_TCC1_WO5 << 16) | MUX_PB29F_TCC1_WO5) +#define PORT_PB29F_TCC1_WO5 (_UL_(1) << 29) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ +#define MUX_PC12G_TCC1_WO6 _L_(6) +#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) +#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ +#define MUX_PC13G_TCC1_WO7 _L_(6) +#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) +#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ +#define MUX_PB18G_PDEC_QDI0 _L_(6) +#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) +#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ +#define MUX_PC16G_PDEC_QDI0 _L_(6) +#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) +#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ +#define MUX_PB19G_PDEC_QDI1 _L_(6) +#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) +#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) +#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ +#define MUX_PB24G_PDEC_QDI1 _L_(6) +#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) +#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) +#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ +#define MUX_PC17G_PDEC_QDI1 _L_(6) +#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) +#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ +#define MUX_PB20G_PDEC_QDI2 _L_(6) +#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) +#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) +#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ +#define MUX_PB25G_PDEC_QDI2 _L_(6) +#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) +#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) +#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ +#define MUX_PC18G_PDEC_QDI2 _L_(6) +#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) +#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ +#define MUX_PB24M_AC_CMP0 _L_(12) +#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) +#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ +#define MUX_PB25M_AC_CMP1 _L_(12) +#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) +#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ +#define MUX_PC27N_CCL_IN4 _L_(13) +#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) +#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ +#define MUX_PC28N_CCL_IN5 _L_(13) +#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) +#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ +#define MUX_PC20N_CCL_IN9 _L_(13) +#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) +#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ +#define MUX_PC21N_CCL_IN10 _L_(13) +#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) +#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB27D_SERCOM4_PAD0 _L_(59) /**< \brief SERCOM4 signal: PAD0 on PB27 mux D */ +#define MUX_PB27D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB27D_SERCOM4_PAD0 ((PIN_PB27D_SERCOM4_PAD0 << 16) | MUX_PB27D_SERCOM4_PAD0) +#define PORT_PB27D_SERCOM4_PAD0 (_UL_(1) << 27) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB26D_SERCOM4_PAD1 _L_(58) /**< \brief SERCOM4 signal: PAD1 on PB26 mux D */ +#define MUX_PB26D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB26D_SERCOM4_PAD1 ((PIN_PB26D_SERCOM4_PAD1 << 16) | MUX_PB26D_SERCOM4_PAD1) +#define PORT_PB26D_SERCOM4_PAD1 (_UL_(1) << 26) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB28D_SERCOM4_PAD2 _L_(60) /**< \brief SERCOM4 signal: PAD2 on PB28 mux D */ +#define MUX_PB28D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB28D_SERCOM4_PAD2 ((PIN_PB28D_SERCOM4_PAD2 << 16) | MUX_PB28D_SERCOM4_PAD2) +#define PORT_PB28D_SERCOM4_PAD2 (_UL_(1) << 28) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PB29D_SERCOM4_PAD3 _L_(61) /**< \brief SERCOM4 signal: PAD3 on PB29 mux D */ +#define MUX_PB29D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB29D_SERCOM4_PAD3 ((PIN_PB29D_SERCOM4_PAD3 << 16) | MUX_PB29D_SERCOM4_PAD3) +#define PORT_PB29D_SERCOM4_PAD3 (_UL_(1) << 29) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ +#define MUX_PB18C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) +#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ +#define MUX_PB19C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) +#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM6 peripheral ========== */ +#define PIN_PD09D_SERCOM6_PAD0 _L_(105) /**< \brief SERCOM6 signal: PAD0 on PD09 mux D */ +#define MUX_PD09D_SERCOM6_PAD0 _L_(3) +#define PINMUX_PD09D_SERCOM6_PAD0 ((PIN_PD09D_SERCOM6_PAD0 << 16) | MUX_PD09D_SERCOM6_PAD0) +#define PORT_PD09D_SERCOM6_PAD0 (_UL_(1) << 9) +#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ +#define MUX_PC13D_SERCOM6_PAD0 _L_(3) +#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) +#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) +#define PIN_PC04C_SERCOM6_PAD0 _L_(68) /**< \brief SERCOM6 signal: PAD0 on PC04 mux C */ +#define MUX_PC04C_SERCOM6_PAD0 _L_(2) +#define PINMUX_PC04C_SERCOM6_PAD0 ((PIN_PC04C_SERCOM6_PAD0 << 16) | MUX_PC04C_SERCOM6_PAD0) +#define PORT_PC04C_SERCOM6_PAD0 (_UL_(1) << 4) +#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ +#define MUX_PC16C_SERCOM6_PAD0 _L_(2) +#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) +#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) +#define PIN_PD08D_SERCOM6_PAD1 _L_(104) /**< \brief SERCOM6 signal: PAD1 on PD08 mux D */ +#define MUX_PD08D_SERCOM6_PAD1 _L_(3) +#define PINMUX_PD08D_SERCOM6_PAD1 ((PIN_PD08D_SERCOM6_PAD1 << 16) | MUX_PD08D_SERCOM6_PAD1) +#define PORT_PD08D_SERCOM6_PAD1 (_UL_(1) << 8) +#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ +#define MUX_PC12D_SERCOM6_PAD1 _L_(3) +#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) +#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) +#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ +#define MUX_PC05C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) +#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) +#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ +#define MUX_PC17C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) +#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) +#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ +#define MUX_PC14D_SERCOM6_PAD2 _L_(3) +#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) +#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) +#define PIN_PD10D_SERCOM6_PAD2 _L_(106) /**< \brief SERCOM6 signal: PAD2 on PD10 mux D */ +#define MUX_PD10D_SERCOM6_PAD2 _L_(3) +#define PINMUX_PD10D_SERCOM6_PAD2 ((PIN_PD10D_SERCOM6_PAD2 << 16) | MUX_PD10D_SERCOM6_PAD2) +#define PORT_PD10D_SERCOM6_PAD2 (_UL_(1) << 10) +#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ +#define MUX_PC06C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) +#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) +#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ +#define MUX_PC10C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) +#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) +#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ +#define MUX_PC18C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) +#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) +#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ +#define MUX_PC15D_SERCOM6_PAD3 _L_(3) +#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) +#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) +#define PIN_PD11D_SERCOM6_PAD3 _L_(107) /**< \brief SERCOM6 signal: PAD3 on PD11 mux D */ +#define MUX_PD11D_SERCOM6_PAD3 _L_(3) +#define PINMUX_PD11D_SERCOM6_PAD3 ((PIN_PD11D_SERCOM6_PAD3 << 16) | MUX_PD11D_SERCOM6_PAD3) +#define PORT_PD11D_SERCOM6_PAD3 (_UL_(1) << 11) +#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ +#define MUX_PC07C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) +#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) +#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ +#define MUX_PC11C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) +#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) +#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ +#define MUX_PC19C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) +#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM7 peripheral ========== */ +#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ +#define MUX_PB21D_SERCOM7_PAD0 _L_(3) +#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) +#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) +#define PIN_PD08C_SERCOM7_PAD0 _L_(104) /**< \brief SERCOM7 signal: PAD0 on PD08 mux C */ +#define MUX_PD08C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PD08C_SERCOM7_PAD0 ((PIN_PD08C_SERCOM7_PAD0 << 16) | MUX_PD08C_SERCOM7_PAD0) +#define PORT_PD08C_SERCOM7_PAD0 (_UL_(1) << 8) +#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ +#define MUX_PB30C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) +#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) +#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ +#define MUX_PC12C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) +#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) +#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ +#define MUX_PB20D_SERCOM7_PAD1 _L_(3) +#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) +#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) +#define PIN_PD09C_SERCOM7_PAD1 _L_(105) /**< \brief SERCOM7 signal: PAD1 on PD09 mux C */ +#define MUX_PD09C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PD09C_SERCOM7_PAD1 ((PIN_PD09C_SERCOM7_PAD1 << 16) | MUX_PD09C_SERCOM7_PAD1) +#define PORT_PD09C_SERCOM7_PAD1 (_UL_(1) << 9) +#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ +#define MUX_PB31C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) +#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) +#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ +#define MUX_PC13C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) +#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) +#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ +#define MUX_PB18D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) +#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) +#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ +#define MUX_PC10D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) +#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) +#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ +#define MUX_PC14C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) +#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) +#define PIN_PD10C_SERCOM7_PAD2 _L_(106) /**< \brief SERCOM7 signal: PAD2 on PD10 mux C */ +#define MUX_PD10C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PD10C_SERCOM7_PAD2 ((PIN_PD10C_SERCOM7_PAD2 << 16) | MUX_PD10C_SERCOM7_PAD2) +#define PORT_PD10C_SERCOM7_PAD2 (_UL_(1) << 10) +#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ +#define MUX_PA30C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) +#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) +#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ +#define MUX_PB19D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) +#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) +#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ +#define MUX_PC11D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) +#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) +#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ +#define MUX_PC15C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) +#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) +#define PIN_PD11C_SERCOM7_PAD3 _L_(107) /**< \brief SERCOM7 signal: PAD3 on PD11 mux C */ +#define MUX_PD11C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PD11C_SERCOM7_PAD3 ((PIN_PD11C_SERCOM7_PAD3 << 16) | MUX_PD11C_SERCOM7_PAD3) +#define PORT_PD11C_SERCOM7_PAD3 (_UL_(1) << 11) +#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ +#define MUX_PA31C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) +#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC6 peripheral ========== */ +#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ +#define MUX_PA30E_TC6_WO0 _L_(4) +#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) +#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) +#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ +#define MUX_PB02E_TC6_WO0 _L_(4) +#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) +#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) +#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ +#define MUX_PB16E_TC6_WO0 _L_(4) +#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) +#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) +#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ +#define MUX_PA31E_TC6_WO1 _L_(4) +#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) +#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) +#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ +#define MUX_PB03E_TC6_WO1 _L_(4) +#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) +#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) +#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ +#define MUX_PB17E_TC6_WO1 _L_(4) +#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) +#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC7 peripheral ========== */ +#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ +#define MUX_PA20E_TC7_WO0 _L_(4) +#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) +#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) +#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ +#define MUX_PB00E_TC7_WO0 _L_(4) +#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) +#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) +#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ +#define MUX_PB22E_TC7_WO0 _L_(4) +#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) +#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) +#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ +#define MUX_PA21E_TC7_WO1 _L_(4) +#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) +#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) +#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ +#define MUX_PB01E_TC7_WO1 _L_(4) +#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) +#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) +#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ +#define MUX_PB23E_TC7_WO1 _L_(4) +#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) +#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ +#define MUX_PC02B_ADC1_AIN4 _L_(1) +#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) +#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) +#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ +#define MUX_PC03B_ADC1_AIN5 _L_(1) +#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) +#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ +#define MUX_PC00B_ADC1_AIN10 _L_(1) +#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) +#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) +#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ +#define MUX_PC01B_ADC1_AIN11 _L_(1) +#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) +#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) +#define PIN_PC30B_ADC1_AIN12 _L_(94) /**< \brief ADC1 signal: AIN12 on PC30 mux B */ +#define MUX_PC30B_ADC1_AIN12 _L_(1) +#define PINMUX_PC30B_ADC1_AIN12 ((PIN_PC30B_ADC1_AIN12 << 16) | MUX_PC30B_ADC1_AIN12) +#define PORT_PC30B_ADC1_AIN12 (_UL_(1) << 30) +#define PIN_PC31B_ADC1_AIN13 _L_(95) /**< \brief ADC1 signal: AIN13 on PC31 mux B */ +#define MUX_PC31B_ADC1_AIN13 _L_(1) +#define PINMUX_PC31B_ADC1_AIN13 ((PIN_PC31B_ADC1_AIN13 << 16) | MUX_PC31B_ADC1_AIN13) +#define PORT_PC31B_ADC1_AIN13 (_UL_(1) << 31) +#define PIN_PD00B_ADC1_AIN14 _L_(96) /**< \brief ADC1 signal: AIN14 on PD00 mux B */ +#define MUX_PD00B_ADC1_AIN14 _L_(1) +#define PINMUX_PD00B_ADC1_AIN14 ((PIN_PD00B_ADC1_AIN14 << 16) | MUX_PD00B_ADC1_AIN14) +#define PORT_PD00B_ADC1_AIN14 (_UL_(1) << 0) +#define PIN_PD01B_ADC1_AIN15 _L_(97) /**< \brief ADC1 signal: AIN15 on PD01 mux B */ +#define MUX_PD01B_ADC1_AIN15 _L_(1) +#define PINMUX_PD01B_ADC1_AIN15 ((PIN_PD01B_ADC1_AIN15 << 16) | MUX_PD01B_ADC1_AIN15) +#define PORT_PD01B_ADC1_AIN15 (_UL_(1) << 1) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB29J_I2S_MCK1 _L_(61) /**< \brief I2S signal: MCK1 on PB29 mux J */ +#define MUX_PB29J_I2S_MCK1 _L_(9) +#define PINMUX_PB29J_I2S_MCK1 ((PIN_PB29J_I2S_MCK1 << 16) | MUX_PB29J_I2S_MCK1) +#define PORT_PB29J_I2S_MCK1 (_UL_(1) << 29) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB28J_I2S_SCK1 _L_(60) /**< \brief I2S signal: SCK1 on PB28 mux J */ +#define MUX_PB28J_I2S_SCK1 _L_(9) +#define PINMUX_PB28J_I2S_SCK1 ((PIN_PB28J_I2S_SCK1 << 16) | MUX_PB28J_I2S_SCK1) +#define PORT_PB28J_I2S_SCK1 (_UL_(1) << 28) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ +#define MUX_PC12K_PCC_DATA10 _L_(10) +#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) +#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) +#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ +#define MUX_PC13K_PCC_DATA11 _L_(10) +#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) +#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) +#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ +#define MUX_PC14K_PCC_DATA12 _L_(10) +#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) +#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) +#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ +#define MUX_PC15K_PCC_DATA13 _L_(10) +#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) +#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ +#define MUX_PC06I_SDHC0_SDCD _L_(8) +#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) +#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ +#define MUX_PC07I_SDHC0_SDWP _L_(8) +#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) +#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) +/* ========== PORT definition for SDHC1 peripheral ========== */ +#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ +#define MUX_PB16I_SDHC1_SDCD _L_(8) +#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) +#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) +#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ +#define MUX_PC20I_SDHC1_SDCD _L_(8) +#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) +#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) +#define PIN_PD20I_SDHC1_SDCD _L_(116) /**< \brief SDHC1 signal: SDCD on PD20 mux I */ +#define MUX_PD20I_SDHC1_SDCD _L_(8) +#define PINMUX_PD20I_SDHC1_SDCD ((PIN_PD20I_SDHC1_SDCD << 16) | MUX_PD20I_SDHC1_SDCD) +#define PORT_PD20I_SDHC1_SDCD (_UL_(1) << 20) +#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ +#define MUX_PA21I_SDHC1_SDCK _L_(8) +#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) +#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) +#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ +#define MUX_PA20I_SDHC1_SDCMD _L_(8) +#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) +#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) +#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ +#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) +#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) +#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) +#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ +#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) +#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) +#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) +#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ +#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) +#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) +#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) +#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ +#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) +#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) +#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) +#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ +#define MUX_PB17I_SDHC1_SDWP _L_(8) +#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) +#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) +#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ +#define MUX_PC21I_SDHC1_SDWP _L_(8) +#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) +#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) +#define PIN_PD21I_SDHC1_SDWP _L_(117) /**< \brief SDHC1 signal: SDWP on PD21 mux I */ +#define MUX_PD21I_SDHC1_SDWP _L_(8) +#define PINMUX_PD21I_SDHC1_SDWP ((PIN_PD21I_SDHC1_SDWP << 16) | MUX_PD21I_SDHC1_SDWP) +#define PORT_PD21I_SDHC1_SDWP (_UL_(1) << 21) + +#endif /* _SAMD51P19A_PIO_ */ diff --git a/lib/samd51/samd51a/include/pio/samd51p20a.h b/lib/samd51/samd51a/include/pio/samd51p20a.h index aa321dd..369b316 100644 --- a/lib/samd51/samd51a/include/pio/samd51p20a.h +++ b/lib/samd51/samd51a/include/pio/samd51p20a.h @@ -1,2879 +1,2879 @@ -/** - * \file - * - * \brief Peripheral I/O description for SAMD51P20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51P20A_PIO_ -#define _SAMD51P20A_PIO_ - -#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ -#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ -#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ -#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ -#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ -#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ -#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ -#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ -#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ -#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ -#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ -#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ -#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ -#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ -#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ -#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ -#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ -#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ -#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ -#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ -#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ -#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ -#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ -#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ -#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ -#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ -#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ -#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ -#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ -#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ -#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ -#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ -#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ -#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ -#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ -#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ -#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ -#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ -#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ -#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ -#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ -#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ -#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ -#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ -#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ -#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ -#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ -#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ -#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ -#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ -#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ -#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ -#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ -#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ -#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ -#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ -#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ -#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ -#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ -#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ -#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ -#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ -#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ -#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ -#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ -#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ -#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ -#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ -#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ -#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ -#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ -#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ -#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ -#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ -#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ -#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ -#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ -#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ -#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ -#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ -#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ -#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ -#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ -#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ -#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ -#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ -#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ -#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ -#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ -#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ -#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ -#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ -#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ -#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ -#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ -#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ -#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ -#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ -#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ -#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ -#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ -#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ -#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ -#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ -#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ -#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ -#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ -#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ -#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ -#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ -#define PIN_PB26 58 /**< \brief Pin Number for PB26 */ -#define PORT_PB26 (_UL_(1) << 26) /**< \brief PORT Mask for PB26 */ -#define PIN_PB27 59 /**< \brief Pin Number for PB27 */ -#define PORT_PB27 (_UL_(1) << 27) /**< \brief PORT Mask for PB27 */ -#define PIN_PB28 60 /**< \brief Pin Number for PB28 */ -#define PORT_PB28 (_UL_(1) << 28) /**< \brief PORT Mask for PB28 */ -#define PIN_PB29 61 /**< \brief Pin Number for PB29 */ -#define PORT_PB29 (_UL_(1) << 29) /**< \brief PORT Mask for PB29 */ -#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ -#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ -#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ -#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ -#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ -#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ -#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ -#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ -#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ -#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ -#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ -#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ -#define PIN_PC04 68 /**< \brief Pin Number for PC04 */ -#define PORT_PC04 (_UL_(1) << 4) /**< \brief PORT Mask for PC04 */ -#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ -#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ -#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ -#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ -#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ -#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ -#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ -#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ -#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ -#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ -#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ -#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ -#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ -#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ -#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ -#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ -#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ -#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ -#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ -#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ -#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ -#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ -#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ -#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ -#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ -#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ -#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ -#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ -#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ -#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ -#define PIN_PC22 86 /**< \brief Pin Number for PC22 */ -#define PORT_PC22 (_UL_(1) << 22) /**< \brief PORT Mask for PC22 */ -#define PIN_PC23 87 /**< \brief Pin Number for PC23 */ -#define PORT_PC23 (_UL_(1) << 23) /**< \brief PORT Mask for PC23 */ -#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ -#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ -#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ -#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ -#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ -#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ -#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ -#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ -#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ -#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ -#define PIN_PC30 94 /**< \brief Pin Number for PC30 */ -#define PORT_PC30 (_UL_(1) << 30) /**< \brief PORT Mask for PC30 */ -#define PIN_PC31 95 /**< \brief Pin Number for PC31 */ -#define PORT_PC31 (_UL_(1) << 31) /**< \brief PORT Mask for PC31 */ -#define PIN_PD00 96 /**< \brief Pin Number for PD00 */ -#define PORT_PD00 (_UL_(1) << 0) /**< \brief PORT Mask for PD00 */ -#define PIN_PD01 97 /**< \brief Pin Number for PD01 */ -#define PORT_PD01 (_UL_(1) << 1) /**< \brief PORT Mask for PD01 */ -#define PIN_PD08 104 /**< \brief Pin Number for PD08 */ -#define PORT_PD08 (_UL_(1) << 8) /**< \brief PORT Mask for PD08 */ -#define PIN_PD09 105 /**< \brief Pin Number for PD09 */ -#define PORT_PD09 (_UL_(1) << 9) /**< \brief PORT Mask for PD09 */ -#define PIN_PD10 106 /**< \brief Pin Number for PD10 */ -#define PORT_PD10 (_UL_(1) << 10) /**< \brief PORT Mask for PD10 */ -#define PIN_PD11 107 /**< \brief Pin Number for PD11 */ -#define PORT_PD11 (_UL_(1) << 11) /**< \brief PORT Mask for PD11 */ -#define PIN_PD12 108 /**< \brief Pin Number for PD12 */ -#define PORT_PD12 (_UL_(1) << 12) /**< \brief PORT Mask for PD12 */ -#define PIN_PD20 116 /**< \brief Pin Number for PD20 */ -#define PORT_PD20 (_UL_(1) << 20) /**< \brief PORT Mask for PD20 */ -#define PIN_PD21 117 /**< \brief Pin Number for PD21 */ -#define PORT_PD21 (_UL_(1) << 21) /**< \brief PORT Mask for PD21 */ -/* ========== PORT definition for CM4 peripheral ========== */ -#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ -#define MUX_PA30H_CM4_SWCLK _L_(7) -#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) -#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) -#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ -#define MUX_PC27M_CM4_SWO _L_(12) -#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) -#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) -#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ -#define MUX_PB30H_CM4_SWO _L_(7) -#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) -#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) -#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ -#define MUX_PC27H_CM4_TRACECLK _L_(7) -#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) -#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) -#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ -#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) -#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) -#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) -#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ -#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) -#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) -#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) -#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ -#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) -#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) -#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) -#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ -#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) -#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) -#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) -/* ========== PORT definition for ANAREF peripheral ========== */ -#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ -#define MUX_PA03B_ANAREF_VREF0 _L_(1) -#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) -#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) -#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ -#define MUX_PA04B_ANAREF_VREF1 _L_(1) -#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) -#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) -#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ -#define MUX_PA06B_ANAREF_VREF2 _L_(1) -#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) -#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) -/* ========== PORT definition for GCLK peripheral ========== */ -#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ -#define MUX_PA30M_GCLK_IO0 _L_(12) -#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) -#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) -#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ -#define MUX_PB14M_GCLK_IO0 _L_(12) -#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) -#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ -#define MUX_PA14M_GCLK_IO0 _L_(12) -#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) -#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) -#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ -#define MUX_PB22M_GCLK_IO0 _L_(12) -#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) -#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) -#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ -#define MUX_PB15M_GCLK_IO1 _L_(12) -#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) -#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ -#define MUX_PA15M_GCLK_IO1 _L_(12) -#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) -#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) -#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ -#define MUX_PB23M_GCLK_IO1 _L_(12) -#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) -#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) -#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ -#define MUX_PA27M_GCLK_IO1 _L_(12) -#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) -#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) -#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ -#define MUX_PA16M_GCLK_IO2 _L_(12) -#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) -#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ -#define MUX_PB16M_GCLK_IO2 _L_(12) -#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) -#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) -#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ -#define MUX_PA17M_GCLK_IO3 _L_(12) -#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) -#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ -#define MUX_PB17M_GCLK_IO3 _L_(12) -#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) -#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) -#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ -#define MUX_PA10M_GCLK_IO4 _L_(12) -#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) -#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ -#define MUX_PB10M_GCLK_IO4 _L_(12) -#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) -#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) -#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ -#define MUX_PB18M_GCLK_IO4 _L_(12) -#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) -#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) -#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ -#define MUX_PA11M_GCLK_IO5 _L_(12) -#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) -#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ -#define MUX_PB11M_GCLK_IO5 _L_(12) -#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) -#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) -#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ -#define MUX_PB19M_GCLK_IO5 _L_(12) -#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) -#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) -#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ -#define MUX_PB12M_GCLK_IO6 _L_(12) -#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) -#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) -#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ -#define MUX_PB20M_GCLK_IO6 _L_(12) -#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) -#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) -#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ -#define MUX_PB13M_GCLK_IO7 _L_(12) -#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) -#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) -#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ -#define MUX_PB21M_GCLK_IO7 _L_(12) -#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) -#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) -/* ========== PORT definition for EIC peripheral ========== */ -#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ -#define MUX_PA00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) -#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ -#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ -#define MUX_PA16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) -#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ -#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ -#define MUX_PB00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) -#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ -#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ -#define MUX_PB16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) -#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ -#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ -#define MUX_PC00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) -#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ -#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ -#define MUX_PC16A_EIC_EXTINT0 _L_(0) -#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) -#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) -#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ -#define PIN_PD00A_EIC_EXTINT0 _L_(96) /**< \brief EIC signal: EXTINT0 on PD00 mux A */ -#define MUX_PD00A_EIC_EXTINT0 _L_(0) -#define PINMUX_PD00A_EIC_EXTINT0 ((PIN_PD00A_EIC_EXTINT0 << 16) | MUX_PD00A_EIC_EXTINT0) -#define PORT_PD00A_EIC_EXTINT0 (_UL_(1) << 0) -#define PIN_PD00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PD00 External Interrupt Line */ -#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ -#define MUX_PA01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) -#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ -#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ -#define MUX_PA17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) -#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ -#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ -#define MUX_PB01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) -#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ -#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ -#define MUX_PB17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) -#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ -#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ -#define MUX_PC01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) -#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ -#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ -#define MUX_PC17A_EIC_EXTINT1 _L_(0) -#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) -#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) -#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ -#define PIN_PD01A_EIC_EXTINT1 _L_(97) /**< \brief EIC signal: EXTINT1 on PD01 mux A */ -#define MUX_PD01A_EIC_EXTINT1 _L_(0) -#define PINMUX_PD01A_EIC_EXTINT1 ((PIN_PD01A_EIC_EXTINT1 << 16) | MUX_PD01A_EIC_EXTINT1) -#define PORT_PD01A_EIC_EXTINT1 (_UL_(1) << 1) -#define PIN_PD01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PD01 External Interrupt Line */ -#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ -#define MUX_PA02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) -#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ -#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ -#define MUX_PA18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) -#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ -#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ -#define MUX_PB02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) -#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ -#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ -#define MUX_PB18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) -#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ -#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ -#define MUX_PC02A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) -#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) -#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ -#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ -#define MUX_PC18A_EIC_EXTINT2 _L_(0) -#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) -#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) -#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ -#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ -#define MUX_PA03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) -#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ -#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ -#define MUX_PA19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) -#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ -#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ -#define MUX_PB03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) -#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ -#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ -#define MUX_PB19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) -#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ -#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ -#define MUX_PC03A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) -#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) -#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ -#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ -#define MUX_PC19A_EIC_EXTINT3 _L_(0) -#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) -#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) -#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ -#define PIN_PD08A_EIC_EXTINT3 _L_(104) /**< \brief EIC signal: EXTINT3 on PD08 mux A */ -#define MUX_PD08A_EIC_EXTINT3 _L_(0) -#define PINMUX_PD08A_EIC_EXTINT3 ((PIN_PD08A_EIC_EXTINT3 << 16) | MUX_PD08A_EIC_EXTINT3) -#define PORT_PD08A_EIC_EXTINT3 (_UL_(1) << 8) -#define PIN_PD08A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PD08 External Interrupt Line */ -#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ -#define MUX_PA04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) -#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ -#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ -#define MUX_PA20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) -#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ -#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ -#define MUX_PB04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) -#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ -#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ -#define MUX_PB20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) -#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ -#define PIN_PC04A_EIC_EXTINT4 _L_(68) /**< \brief EIC signal: EXTINT4 on PC04 mux A */ -#define MUX_PC04A_EIC_EXTINT4 _L_(0) -#define PINMUX_PC04A_EIC_EXTINT4 ((PIN_PC04A_EIC_EXTINT4 << 16) | MUX_PC04A_EIC_EXTINT4) -#define PORT_PC04A_EIC_EXTINT4 (_UL_(1) << 4) -#define PIN_PC04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC04 External Interrupt Line */ -#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ -#define MUX_PC20A_EIC_EXTINT4 _L_(0) -#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) -#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) -#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ -#define PIN_PD09A_EIC_EXTINT4 _L_(105) /**< \brief EIC signal: EXTINT4 on PD09 mux A */ -#define MUX_PD09A_EIC_EXTINT4 _L_(0) -#define PINMUX_PD09A_EIC_EXTINT4 ((PIN_PD09A_EIC_EXTINT4 << 16) | MUX_PD09A_EIC_EXTINT4) -#define PORT_PD09A_EIC_EXTINT4 (_UL_(1) << 9) -#define PIN_PD09A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PD09 External Interrupt Line */ -#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ -#define MUX_PA05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) -#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ -#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ -#define MUX_PA21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) -#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ -#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ -#define MUX_PB05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) -#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ -#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ -#define MUX_PB21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) -#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ -#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ -#define MUX_PC05A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) -#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) -#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ -#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ -#define MUX_PC21A_EIC_EXTINT5 _L_(0) -#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) -#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) -#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ -#define PIN_PD10A_EIC_EXTINT5 _L_(106) /**< \brief EIC signal: EXTINT5 on PD10 mux A */ -#define MUX_PD10A_EIC_EXTINT5 _L_(0) -#define PINMUX_PD10A_EIC_EXTINT5 ((PIN_PD10A_EIC_EXTINT5 << 16) | MUX_PD10A_EIC_EXTINT5) -#define PORT_PD10A_EIC_EXTINT5 (_UL_(1) << 10) -#define PIN_PD10A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PD10 External Interrupt Line */ -#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ -#define MUX_PA06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) -#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ -#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ -#define MUX_PA22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) -#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ -#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ -#define MUX_PB06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) -#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ -#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ -#define MUX_PB22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) -#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ -#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ -#define MUX_PC06A_EIC_EXTINT6 _L_(0) -#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) -#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) -#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ -#define PIN_PC22A_EIC_EXTINT6 _L_(86) /**< \brief EIC signal: EXTINT6 on PC22 mux A */ -#define MUX_PC22A_EIC_EXTINT6 _L_(0) -#define PINMUX_PC22A_EIC_EXTINT6 ((PIN_PC22A_EIC_EXTINT6 << 16) | MUX_PC22A_EIC_EXTINT6) -#define PORT_PC22A_EIC_EXTINT6 (_UL_(1) << 22) -#define PIN_PC22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC22 External Interrupt Line */ -#define PIN_PD11A_EIC_EXTINT6 _L_(107) /**< \brief EIC signal: EXTINT6 on PD11 mux A */ -#define MUX_PD11A_EIC_EXTINT6 _L_(0) -#define PINMUX_PD11A_EIC_EXTINT6 ((PIN_PD11A_EIC_EXTINT6 << 16) | MUX_PD11A_EIC_EXTINT6) -#define PORT_PD11A_EIC_EXTINT6 (_UL_(1) << 11) -#define PIN_PD11A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PD11 External Interrupt Line */ -#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ -#define MUX_PA07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) -#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ -#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ -#define MUX_PA23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) -#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ -#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ -#define MUX_PB07A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) -#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) -#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ -#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ -#define MUX_PB23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) -#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ -#define PIN_PC23A_EIC_EXTINT7 _L_(87) /**< \brief EIC signal: EXTINT7 on PC23 mux A */ -#define MUX_PC23A_EIC_EXTINT7 _L_(0) -#define PINMUX_PC23A_EIC_EXTINT7 ((PIN_PC23A_EIC_EXTINT7 << 16) | MUX_PC23A_EIC_EXTINT7) -#define PORT_PC23A_EIC_EXTINT7 (_UL_(1) << 23) -#define PIN_PC23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PC23 External Interrupt Line */ -#define PIN_PD12A_EIC_EXTINT7 _L_(108) /**< \brief EIC signal: EXTINT7 on PD12 mux A */ -#define MUX_PD12A_EIC_EXTINT7 _L_(0) -#define PINMUX_PD12A_EIC_EXTINT7 ((PIN_PD12A_EIC_EXTINT7 << 16) | MUX_PD12A_EIC_EXTINT7) -#define PORT_PD12A_EIC_EXTINT7 (_UL_(1) << 12) -#define PIN_PD12A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PD12 External Interrupt Line */ -#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ -#define MUX_PA24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) -#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ -#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ -#define MUX_PB08A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) -#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) -#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ -#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ -#define MUX_PB24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) -#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ -#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ -#define MUX_PC24A_EIC_EXTINT8 _L_(0) -#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) -#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) -#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ -#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ -#define MUX_PA09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) -#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ -#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ -#define MUX_PA25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) -#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ -#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ -#define MUX_PB09A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) -#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) -#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ -#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ -#define MUX_PB25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) -#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ -#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ -#define MUX_PC07A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) -#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) -#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ -#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ -#define MUX_PC25A_EIC_EXTINT9 _L_(0) -#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) -#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) -#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ -#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ -#define MUX_PA10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) -#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ -#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ -#define MUX_PB10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) -#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ -#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ -#define MUX_PC10A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) -#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) -#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ -#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ -#define MUX_PC26A_EIC_EXTINT10 _L_(0) -#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) -#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) -#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ -#define PIN_PD20A_EIC_EXTINT10 _L_(116) /**< \brief EIC signal: EXTINT10 on PD20 mux A */ -#define MUX_PD20A_EIC_EXTINT10 _L_(0) -#define PINMUX_PD20A_EIC_EXTINT10 ((PIN_PD20A_EIC_EXTINT10 << 16) | MUX_PD20A_EIC_EXTINT10) -#define PORT_PD20A_EIC_EXTINT10 (_UL_(1) << 20) -#define PIN_PD20A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PD20 External Interrupt Line */ -#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ -#define MUX_PA11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) -#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ -#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ -#define MUX_PA27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) -#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ -#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ -#define MUX_PB11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) -#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ -#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ -#define MUX_PC11A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) -#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) -#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ -#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ -#define MUX_PC27A_EIC_EXTINT11 _L_(0) -#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) -#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) -#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ -#define PIN_PD21A_EIC_EXTINT11 _L_(117) /**< \brief EIC signal: EXTINT11 on PD21 mux A */ -#define MUX_PD21A_EIC_EXTINT11 _L_(0) -#define PINMUX_PD21A_EIC_EXTINT11 ((PIN_PD21A_EIC_EXTINT11 << 16) | MUX_PD21A_EIC_EXTINT11) -#define PORT_PD21A_EIC_EXTINT11 (_UL_(1) << 21) -#define PIN_PD21A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PD21 External Interrupt Line */ -#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ -#define MUX_PA12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) -#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ -#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ -#define MUX_PB12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) -#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ -#define PIN_PB26A_EIC_EXTINT12 _L_(58) /**< \brief EIC signal: EXTINT12 on PB26 mux A */ -#define MUX_PB26A_EIC_EXTINT12 _L_(0) -#define PINMUX_PB26A_EIC_EXTINT12 ((PIN_PB26A_EIC_EXTINT12 << 16) | MUX_PB26A_EIC_EXTINT12) -#define PORT_PB26A_EIC_EXTINT12 (_UL_(1) << 26) -#define PIN_PB26A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB26 External Interrupt Line */ -#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ -#define MUX_PC12A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) -#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) -#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ -#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ -#define MUX_PC28A_EIC_EXTINT12 _L_(0) -#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) -#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) -#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ -#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ -#define MUX_PA13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) -#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ -#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ -#define MUX_PB13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) -#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ -#define PIN_PB27A_EIC_EXTINT13 _L_(59) /**< \brief EIC signal: EXTINT13 on PB27 mux A */ -#define MUX_PB27A_EIC_EXTINT13 _L_(0) -#define PINMUX_PB27A_EIC_EXTINT13 ((PIN_PB27A_EIC_EXTINT13 << 16) | MUX_PB27A_EIC_EXTINT13) -#define PORT_PB27A_EIC_EXTINT13 (_UL_(1) << 27) -#define PIN_PB27A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB27 External Interrupt Line */ -#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ -#define MUX_PC13A_EIC_EXTINT13 _L_(0) -#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) -#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) -#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ -#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ -#define MUX_PA30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) -#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ -#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ -#define MUX_PB14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) -#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ -#define PIN_PB28A_EIC_EXTINT14 _L_(60) /**< \brief EIC signal: EXTINT14 on PB28 mux A */ -#define MUX_PB28A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB28A_EIC_EXTINT14 ((PIN_PB28A_EIC_EXTINT14 << 16) | MUX_PB28A_EIC_EXTINT14) -#define PORT_PB28A_EIC_EXTINT14 (_UL_(1) << 28) -#define PIN_PB28A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB28 External Interrupt Line */ -#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ -#define MUX_PB30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) -#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ -#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ -#define MUX_PC14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) -#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ -#define PIN_PC30A_EIC_EXTINT14 _L_(94) /**< \brief EIC signal: EXTINT14 on PC30 mux A */ -#define MUX_PC30A_EIC_EXTINT14 _L_(0) -#define PINMUX_PC30A_EIC_EXTINT14 ((PIN_PC30A_EIC_EXTINT14 << 16) | MUX_PC30A_EIC_EXTINT14) -#define PORT_PC30A_EIC_EXTINT14 (_UL_(1) << 30) -#define PIN_PC30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC30 External Interrupt Line */ -#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ -#define MUX_PA14A_EIC_EXTINT14 _L_(0) -#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) -#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) -#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ -#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ -#define MUX_PA15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) -#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ -#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ -#define MUX_PA31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) -#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ -#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ -#define MUX_PB15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) -#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ -#define PIN_PB29A_EIC_EXTINT15 _L_(61) /**< \brief EIC signal: EXTINT15 on PB29 mux A */ -#define MUX_PB29A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB29A_EIC_EXTINT15 ((PIN_PB29A_EIC_EXTINT15 << 16) | MUX_PB29A_EIC_EXTINT15) -#define PORT_PB29A_EIC_EXTINT15 (_UL_(1) << 29) -#define PIN_PB29A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB29 External Interrupt Line */ -#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ -#define MUX_PB31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) -#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ -#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ -#define MUX_PC15A_EIC_EXTINT15 _L_(0) -#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) -#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) -#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ -#define PIN_PC31A_EIC_EXTINT15 _L_(95) /**< \brief EIC signal: EXTINT15 on PC31 mux A */ -#define MUX_PC31A_EIC_EXTINT15 _L_(0) -#define PINMUX_PC31A_EIC_EXTINT15 ((PIN_PC31A_EIC_EXTINT15 << 16) | MUX_PC31A_EIC_EXTINT15) -#define PORT_PC31A_EIC_EXTINT15 (_UL_(1) << 31) -#define PIN_PC31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC31 External Interrupt Line */ -#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ -#define MUX_PA08A_EIC_NMI _L_(0) -#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) -#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) -/* ========== PORT definition for SERCOM0 peripheral ========== */ -#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ -#define MUX_PA04D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) -#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) -#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ -#define MUX_PC17D_SERCOM0_PAD0 _L_(3) -#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) -#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) -#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ -#define MUX_PA08C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) -#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) -#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ -#define MUX_PB24C_SERCOM0_PAD0 _L_(2) -#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) -#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) -#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ -#define MUX_PA05D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) -#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) -#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ -#define MUX_PC16D_SERCOM0_PAD1 _L_(3) -#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) -#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) -#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ -#define MUX_PA09C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) -#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) -#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ -#define MUX_PB25C_SERCOM0_PAD1 _L_(2) -#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) -#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) -#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ -#define MUX_PA06D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) -#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) -#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ -#define MUX_PC18D_SERCOM0_PAD2 _L_(3) -#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) -#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) -#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ -#define MUX_PA10C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) -#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) -#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ -#define MUX_PC24C_SERCOM0_PAD2 _L_(2) -#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) -#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) -#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ -#define MUX_PA07D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) -#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) -#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ -#define MUX_PC19D_SERCOM0_PAD3 _L_(3) -#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) -#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) -#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ -#define MUX_PA11C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) -#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) -#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ -#define MUX_PC25C_SERCOM0_PAD3 _L_(2) -#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) -#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for SERCOM1 peripheral ========== */ -#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ -#define MUX_PA00D_SERCOM1_PAD0 _L_(3) -#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) -#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) -#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ -#define MUX_PA16C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) -#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) -#define PIN_PC22C_SERCOM1_PAD0 _L_(86) /**< \brief SERCOM1 signal: PAD0 on PC22 mux C */ -#define MUX_PC22C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PC22C_SERCOM1_PAD0 ((PIN_PC22C_SERCOM1_PAD0 << 16) | MUX_PC22C_SERCOM1_PAD0) -#define PORT_PC22C_SERCOM1_PAD0 (_UL_(1) << 22) -#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ -#define MUX_PC27C_SERCOM1_PAD0 _L_(2) -#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) -#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) -#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ -#define MUX_PA01D_SERCOM1_PAD1 _L_(3) -#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) -#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) -#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ -#define MUX_PA17C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) -#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) -#define PIN_PC23C_SERCOM1_PAD1 _L_(87) /**< \brief SERCOM1 signal: PAD1 on PC23 mux C */ -#define MUX_PC23C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PC23C_SERCOM1_PAD1 ((PIN_PC23C_SERCOM1_PAD1 << 16) | MUX_PC23C_SERCOM1_PAD1) -#define PORT_PC23C_SERCOM1_PAD1 (_UL_(1) << 23) -#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ -#define MUX_PC28C_SERCOM1_PAD1 _L_(2) -#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) -#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) -#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ -#define MUX_PA30D_SERCOM1_PAD2 _L_(3) -#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) -#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) -#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ -#define MUX_PA18C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) -#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) -#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ -#define MUX_PB22C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) -#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) -#define PIN_PD20C_SERCOM1_PAD2 _L_(116) /**< \brief SERCOM1 signal: PAD2 on PD20 mux C */ -#define MUX_PD20C_SERCOM1_PAD2 _L_(2) -#define PINMUX_PD20C_SERCOM1_PAD2 ((PIN_PD20C_SERCOM1_PAD2 << 16) | MUX_PD20C_SERCOM1_PAD2) -#define PORT_PD20C_SERCOM1_PAD2 (_UL_(1) << 20) -#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ -#define MUX_PA31D_SERCOM1_PAD3 _L_(3) -#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) -#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) -#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ -#define MUX_PA19C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) -#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) -#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ -#define MUX_PB23C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) -#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) -#define PIN_PD21C_SERCOM1_PAD3 _L_(117) /**< \brief SERCOM1 signal: PAD3 on PD21 mux C */ -#define MUX_PD21C_SERCOM1_PAD3 _L_(2) -#define PINMUX_PD21C_SERCOM1_PAD3 ((PIN_PD21C_SERCOM1_PAD3 << 16) | MUX_PD21C_SERCOM1_PAD3) -#define PORT_PD21C_SERCOM1_PAD3 (_UL_(1) << 21) -/* ========== PORT definition for TC0 peripheral ========== */ -#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ -#define MUX_PA04E_TC0_WO0 _L_(4) -#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) -#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) -#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ -#define MUX_PA08E_TC0_WO0 _L_(4) -#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) -#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) -#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ -#define MUX_PB30E_TC0_WO0 _L_(4) -#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) -#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) -#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ -#define MUX_PA05E_TC0_WO1 _L_(4) -#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) -#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) -#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ -#define MUX_PA09E_TC0_WO1 _L_(4) -#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) -#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) -#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ -#define MUX_PB31E_TC0_WO1 _L_(4) -#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) -#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC1 peripheral ========== */ -#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ -#define MUX_PA06E_TC1_WO0 _L_(4) -#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) -#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) -#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ -#define MUX_PA10E_TC1_WO0 _L_(4) -#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) -#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) -#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ -#define MUX_PA07E_TC1_WO1 _L_(4) -#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) -#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) -#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ -#define MUX_PA11E_TC1_WO1 _L_(4) -#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) -#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) -/* ========== PORT definition for USB peripheral ========== */ -#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ -#define MUX_PA24H_USB_DM _L_(7) -#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) -#define PORT_PA24H_USB_DM (_UL_(1) << 24) -#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ -#define MUX_PA25H_USB_DP _L_(7) -#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) -#define PORT_PA25H_USB_DP (_UL_(1) << 25) -#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ -#define MUX_PA23H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) -#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) -#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ -#define MUX_PB22H_USB_SOF_1KHZ _L_(7) -#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) -#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) -/* ========== PORT definition for SERCOM2 peripheral ========== */ -#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ -#define MUX_PA09D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) -#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) -#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ -#define MUX_PB25D_SERCOM2_PAD0 _L_(3) -#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) -#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) -#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ -#define MUX_PA12C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) -#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) -#define PIN_PB26C_SERCOM2_PAD0 _L_(58) /**< \brief SERCOM2 signal: PAD0 on PB26 mux C */ -#define MUX_PB26C_SERCOM2_PAD0 _L_(2) -#define PINMUX_PB26C_SERCOM2_PAD0 ((PIN_PB26C_SERCOM2_PAD0 << 16) | MUX_PB26C_SERCOM2_PAD0) -#define PORT_PB26C_SERCOM2_PAD0 (_UL_(1) << 26) -#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ -#define MUX_PA08D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) -#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) -#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ -#define MUX_PB24D_SERCOM2_PAD1 _L_(3) -#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) -#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) -#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ -#define MUX_PA13C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) -#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) -#define PIN_PB27C_SERCOM2_PAD1 _L_(59) /**< \brief SERCOM2 signal: PAD1 on PB27 mux C */ -#define MUX_PB27C_SERCOM2_PAD1 _L_(2) -#define PINMUX_PB27C_SERCOM2_PAD1 ((PIN_PB27C_SERCOM2_PAD1 << 16) | MUX_PB27C_SERCOM2_PAD1) -#define PORT_PB27C_SERCOM2_PAD1 (_UL_(1) << 27) -#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ -#define MUX_PA10D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) -#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) -#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ -#define MUX_PC24D_SERCOM2_PAD2 _L_(3) -#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) -#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) -#define PIN_PB28C_SERCOM2_PAD2 _L_(60) /**< \brief SERCOM2 signal: PAD2 on PB28 mux C */ -#define MUX_PB28C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PB28C_SERCOM2_PAD2 ((PIN_PB28C_SERCOM2_PAD2 << 16) | MUX_PB28C_SERCOM2_PAD2) -#define PORT_PB28C_SERCOM2_PAD2 (_UL_(1) << 28) -#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ -#define MUX_PA14C_SERCOM2_PAD2 _L_(2) -#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) -#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) -#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ -#define MUX_PA11D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) -#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) -#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ -#define MUX_PC25D_SERCOM2_PAD3 _L_(3) -#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) -#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) -#define PIN_PB29C_SERCOM2_PAD3 _L_(61) /**< \brief SERCOM2 signal: PAD3 on PB29 mux C */ -#define MUX_PB29C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PB29C_SERCOM2_PAD3 ((PIN_PB29C_SERCOM2_PAD3 << 16) | MUX_PB29C_SERCOM2_PAD3) -#define PORT_PB29C_SERCOM2_PAD3 (_UL_(1) << 29) -#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ -#define MUX_PA15C_SERCOM2_PAD3 _L_(2) -#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) -#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM3 peripheral ========== */ -#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ -#define MUX_PA17D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) -#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) -#define PIN_PC23D_SERCOM3_PAD0 _L_(87) /**< \brief SERCOM3 signal: PAD0 on PC23 mux D */ -#define MUX_PC23D_SERCOM3_PAD0 _L_(3) -#define PINMUX_PC23D_SERCOM3_PAD0 ((PIN_PC23D_SERCOM3_PAD0 << 16) | MUX_PC23D_SERCOM3_PAD0) -#define PORT_PC23D_SERCOM3_PAD0 (_UL_(1) << 23) -#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ -#define MUX_PA22C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) -#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) -#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ -#define MUX_PB20C_SERCOM3_PAD0 _L_(2) -#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) -#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) -#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ -#define MUX_PA16D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) -#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) -#define PIN_PC22D_SERCOM3_PAD1 _L_(86) /**< \brief SERCOM3 signal: PAD1 on PC22 mux D */ -#define MUX_PC22D_SERCOM3_PAD1 _L_(3) -#define PINMUX_PC22D_SERCOM3_PAD1 ((PIN_PC22D_SERCOM3_PAD1 << 16) | MUX_PC22D_SERCOM3_PAD1) -#define PORT_PC22D_SERCOM3_PAD1 (_UL_(1) << 22) -#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ -#define MUX_PA23C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) -#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) -#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ -#define MUX_PB21C_SERCOM3_PAD1 _L_(2) -#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) -#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) -#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ -#define MUX_PA18D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) -#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) -#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ -#define MUX_PA20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) -#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PD20D_SERCOM3_PAD2 _L_(116) /**< \brief SERCOM3 signal: PAD2 on PD20 mux D */ -#define MUX_PD20D_SERCOM3_PAD2 _L_(3) -#define PINMUX_PD20D_SERCOM3_PAD2 ((PIN_PD20D_SERCOM3_PAD2 << 16) | MUX_PD20D_SERCOM3_PAD2) -#define PORT_PD20D_SERCOM3_PAD2 (_UL_(1) << 20) -#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ -#define MUX_PA24C_SERCOM3_PAD2 _L_(2) -#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) -#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) -#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ -#define MUX_PA19D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) -#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) -#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ -#define MUX_PA21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) -#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PD21D_SERCOM3_PAD3 _L_(117) /**< \brief SERCOM3 signal: PAD3 on PD21 mux D */ -#define MUX_PD21D_SERCOM3_PAD3 _L_(3) -#define PINMUX_PD21D_SERCOM3_PAD3 ((PIN_PD21D_SERCOM3_PAD3 << 16) | MUX_PD21D_SERCOM3_PAD3) -#define PORT_PD21D_SERCOM3_PAD3 (_UL_(1) << 21) -#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ -#define MUX_PA25C_SERCOM3_PAD3 _L_(2) -#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) -#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) -/* ========== PORT definition for TCC0 peripheral ========== */ -#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ -#define MUX_PA20G_TCC0_WO0 _L_(6) -#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) -#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) -#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ -#define MUX_PB12G_TCC0_WO0 _L_(6) -#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) -#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) -#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ -#define MUX_PA08F_TCC0_WO0 _L_(5) -#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) -#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) -#define PIN_PC04F_TCC0_WO0 _L_(68) /**< \brief TCC0 signal: WO0 on PC04 mux F */ -#define MUX_PC04F_TCC0_WO0 _L_(5) -#define PINMUX_PC04F_TCC0_WO0 ((PIN_PC04F_TCC0_WO0 << 16) | MUX_PC04F_TCC0_WO0) -#define PORT_PC04F_TCC0_WO0 (_UL_(1) << 4) -#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ -#define MUX_PC10F_TCC0_WO0 _L_(5) -#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) -#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) -#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ -#define MUX_PC16F_TCC0_WO0 _L_(5) -#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) -#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) -#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ -#define MUX_PA21G_TCC0_WO1 _L_(6) -#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) -#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) -#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ -#define MUX_PB13G_TCC0_WO1 _L_(6) -#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) -#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) -#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ -#define MUX_PA09F_TCC0_WO1 _L_(5) -#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) -#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) -#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ -#define MUX_PC11F_TCC0_WO1 _L_(5) -#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) -#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) -#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ -#define MUX_PC17F_TCC0_WO1 _L_(5) -#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) -#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) -#define PIN_PD08F_TCC0_WO1 _L_(104) /**< \brief TCC0 signal: WO1 on PD08 mux F */ -#define MUX_PD08F_TCC0_WO1 _L_(5) -#define PINMUX_PD08F_TCC0_WO1 ((PIN_PD08F_TCC0_WO1 << 16) | MUX_PD08F_TCC0_WO1) -#define PORT_PD08F_TCC0_WO1 (_UL_(1) << 8) -#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ -#define MUX_PA22G_TCC0_WO2 _L_(6) -#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) -#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) -#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ -#define MUX_PB14G_TCC0_WO2 _L_(6) -#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) -#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) -#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ -#define MUX_PA10F_TCC0_WO2 _L_(5) -#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) -#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) -#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ -#define MUX_PC12F_TCC0_WO2 _L_(5) -#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) -#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) -#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ -#define MUX_PC18F_TCC0_WO2 _L_(5) -#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) -#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) -#define PIN_PD09F_TCC0_WO2 _L_(105) /**< \brief TCC0 signal: WO2 on PD09 mux F */ -#define MUX_PD09F_TCC0_WO2 _L_(5) -#define PINMUX_PD09F_TCC0_WO2 ((PIN_PD09F_TCC0_WO2 << 16) | MUX_PD09F_TCC0_WO2) -#define PORT_PD09F_TCC0_WO2 (_UL_(1) << 9) -#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ -#define MUX_PA23G_TCC0_WO3 _L_(6) -#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) -#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) -#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ -#define MUX_PB15G_TCC0_WO3 _L_(6) -#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) -#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) -#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ -#define MUX_PA11F_TCC0_WO3 _L_(5) -#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) -#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) -#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ -#define MUX_PC13F_TCC0_WO3 _L_(5) -#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) -#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) -#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ -#define MUX_PC19F_TCC0_WO3 _L_(5) -#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) -#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) -#define PIN_PD10F_TCC0_WO3 _L_(106) /**< \brief TCC0 signal: WO3 on PD10 mux F */ -#define MUX_PD10F_TCC0_WO3 _L_(5) -#define PINMUX_PD10F_TCC0_WO3 ((PIN_PD10F_TCC0_WO3 << 16) | MUX_PD10F_TCC0_WO3) -#define PORT_PD10F_TCC0_WO3 (_UL_(1) << 10) -#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ -#define MUX_PA16G_TCC0_WO4 _L_(6) -#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) -#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ -#define MUX_PB16G_TCC0_WO4 _L_(6) -#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) -#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) -#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ -#define MUX_PB10F_TCC0_WO4 _L_(5) -#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) -#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) -#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ -#define MUX_PC14F_TCC0_WO4 _L_(5) -#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) -#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) -#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ -#define MUX_PC20F_TCC0_WO4 _L_(5) -#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) -#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) -#define PIN_PD11F_TCC0_WO4 _L_(107) /**< \brief TCC0 signal: WO4 on PD11 mux F */ -#define MUX_PD11F_TCC0_WO4 _L_(5) -#define PINMUX_PD11F_TCC0_WO4 ((PIN_PD11F_TCC0_WO4 << 16) | MUX_PD11F_TCC0_WO4) -#define PORT_PD11F_TCC0_WO4 (_UL_(1) << 11) -#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ -#define MUX_PA17G_TCC0_WO5 _L_(6) -#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) -#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ -#define MUX_PB17G_TCC0_WO5 _L_(6) -#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) -#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) -#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ -#define MUX_PB11F_TCC0_WO5 _L_(5) -#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) -#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) -#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ -#define MUX_PC15F_TCC0_WO5 _L_(5) -#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) -#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) -#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ -#define MUX_PC21F_TCC0_WO5 _L_(5) -#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) -#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) -#define PIN_PD12F_TCC0_WO5 _L_(108) /**< \brief TCC0 signal: WO5 on PD12 mux F */ -#define MUX_PD12F_TCC0_WO5 _L_(5) -#define PINMUX_PD12F_TCC0_WO5 ((PIN_PD12F_TCC0_WO5 << 16) | MUX_PD12F_TCC0_WO5) -#define PORT_PD12F_TCC0_WO5 (_UL_(1) << 12) -#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ -#define MUX_PA18G_TCC0_WO6 _L_(6) -#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) -#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) -#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ -#define MUX_PB30G_TCC0_WO6 _L_(6) -#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) -#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) -#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ -#define MUX_PA12F_TCC0_WO6 _L_(5) -#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) -#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) -#define PIN_PC22F_TCC0_WO6 _L_(86) /**< \brief TCC0 signal: WO6 on PC22 mux F */ -#define MUX_PC22F_TCC0_WO6 _L_(5) -#define PINMUX_PC22F_TCC0_WO6 ((PIN_PC22F_TCC0_WO6 << 16) | MUX_PC22F_TCC0_WO6) -#define PORT_PC22F_TCC0_WO6 (_UL_(1) << 22) -#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ -#define MUX_PA19G_TCC0_WO7 _L_(6) -#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) -#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) -#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ -#define MUX_PB31G_TCC0_WO7 _L_(6) -#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) -#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) -#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ -#define MUX_PA13F_TCC0_WO7 _L_(5) -#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) -#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) -#define PIN_PC23F_TCC0_WO7 _L_(87) /**< \brief TCC0 signal: WO7 on PC23 mux F */ -#define MUX_PC23F_TCC0_WO7 _L_(5) -#define PINMUX_PC23F_TCC0_WO7 ((PIN_PC23F_TCC0_WO7 << 16) | MUX_PC23F_TCC0_WO7) -#define PORT_PC23F_TCC0_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TCC1 peripheral ========== */ -#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ -#define MUX_PB10G_TCC1_WO0 _L_(6) -#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) -#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) -#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ -#define MUX_PC14G_TCC1_WO0 _L_(6) -#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) -#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) -#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ -#define MUX_PA16F_TCC1_WO0 _L_(5) -#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) -#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) -#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ -#define MUX_PB18F_TCC1_WO0 _L_(5) -#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) -#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) -#define PIN_PD20F_TCC1_WO0 _L_(116) /**< \brief TCC1 signal: WO0 on PD20 mux F */ -#define MUX_PD20F_TCC1_WO0 _L_(5) -#define PINMUX_PD20F_TCC1_WO0 ((PIN_PD20F_TCC1_WO0 << 16) | MUX_PD20F_TCC1_WO0) -#define PORT_PD20F_TCC1_WO0 (_UL_(1) << 20) -#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ -#define MUX_PB11G_TCC1_WO1 _L_(6) -#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) -#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) -#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ -#define MUX_PC15G_TCC1_WO1 _L_(6) -#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) -#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) -#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ -#define MUX_PA17F_TCC1_WO1 _L_(5) -#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) -#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) -#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ -#define MUX_PB19F_TCC1_WO1 _L_(5) -#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) -#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) -#define PIN_PD21F_TCC1_WO1 _L_(117) /**< \brief TCC1 signal: WO1 on PD21 mux F */ -#define MUX_PD21F_TCC1_WO1 _L_(5) -#define PINMUX_PD21F_TCC1_WO1 ((PIN_PD21F_TCC1_WO1 << 16) | MUX_PD21F_TCC1_WO1) -#define PORT_PD21F_TCC1_WO1 (_UL_(1) << 21) -#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ -#define MUX_PA12G_TCC1_WO2 _L_(6) -#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) -#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) -#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ -#define MUX_PA14G_TCC1_WO2 _L_(6) -#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) -#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) -#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ -#define MUX_PA18F_TCC1_WO2 _L_(5) -#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) -#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) -#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ -#define MUX_PB20F_TCC1_WO2 _L_(5) -#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) -#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) -#define PIN_PB26F_TCC1_WO2 _L_(58) /**< \brief TCC1 signal: WO2 on PB26 mux F */ -#define MUX_PB26F_TCC1_WO2 _L_(5) -#define PINMUX_PB26F_TCC1_WO2 ((PIN_PB26F_TCC1_WO2 << 16) | MUX_PB26F_TCC1_WO2) -#define PORT_PB26F_TCC1_WO2 (_UL_(1) << 26) -#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ -#define MUX_PA13G_TCC1_WO3 _L_(6) -#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) -#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) -#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ -#define MUX_PA15G_TCC1_WO3 _L_(6) -#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) -#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) -#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ -#define MUX_PA19F_TCC1_WO3 _L_(5) -#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) -#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) -#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ -#define MUX_PB21F_TCC1_WO3 _L_(5) -#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) -#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) -#define PIN_PB27F_TCC1_WO3 _L_(59) /**< \brief TCC1 signal: WO3 on PB27 mux F */ -#define MUX_PB27F_TCC1_WO3 _L_(5) -#define PINMUX_PB27F_TCC1_WO3 ((PIN_PB27F_TCC1_WO3 << 16) | MUX_PB27F_TCC1_WO3) -#define PORT_PB27F_TCC1_WO3 (_UL_(1) << 27) -#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ -#define MUX_PA08G_TCC1_WO4 _L_(6) -#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) -#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) -#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ -#define MUX_PC10G_TCC1_WO4 _L_(6) -#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) -#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) -#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ -#define MUX_PA20F_TCC1_WO4 _L_(5) -#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) -#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) -#define PIN_PB28F_TCC1_WO4 _L_(60) /**< \brief TCC1 signal: WO4 on PB28 mux F */ -#define MUX_PB28F_TCC1_WO4 _L_(5) -#define PINMUX_PB28F_TCC1_WO4 ((PIN_PB28F_TCC1_WO4 << 16) | MUX_PB28F_TCC1_WO4) -#define PORT_PB28F_TCC1_WO4 (_UL_(1) << 28) -#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ -#define MUX_PA09G_TCC1_WO5 _L_(6) -#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) -#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) -#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ -#define MUX_PC11G_TCC1_WO5 _L_(6) -#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) -#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) -#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ -#define MUX_PA21F_TCC1_WO5 _L_(5) -#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) -#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) -#define PIN_PB29F_TCC1_WO5 _L_(61) /**< \brief TCC1 signal: WO5 on PB29 mux F */ -#define MUX_PB29F_TCC1_WO5 _L_(5) -#define PINMUX_PB29F_TCC1_WO5 ((PIN_PB29F_TCC1_WO5 << 16) | MUX_PB29F_TCC1_WO5) -#define PORT_PB29F_TCC1_WO5 (_UL_(1) << 29) -#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ -#define MUX_PA10G_TCC1_WO6 _L_(6) -#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) -#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) -#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ -#define MUX_PC12G_TCC1_WO6 _L_(6) -#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) -#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) -#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ -#define MUX_PA22F_TCC1_WO6 _L_(5) -#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) -#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) -#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ -#define MUX_PA11G_TCC1_WO7 _L_(6) -#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) -#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) -#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ -#define MUX_PC13G_TCC1_WO7 _L_(6) -#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) -#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) -#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ -#define MUX_PA23F_TCC1_WO7 _L_(5) -#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) -#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) -/* ========== PORT definition for TC2 peripheral ========== */ -#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ -#define MUX_PA12E_TC2_WO0 _L_(4) -#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) -#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) -#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ -#define MUX_PA16E_TC2_WO0 _L_(4) -#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) -#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) -#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ -#define MUX_PA00E_TC2_WO0 _L_(4) -#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) -#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) -#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ -#define MUX_PA01E_TC2_WO1 _L_(4) -#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) -#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) -#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ -#define MUX_PA13E_TC2_WO1 _L_(4) -#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) -#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) -#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ -#define MUX_PA17E_TC2_WO1 _L_(4) -#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) -#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC3 peripheral ========== */ -#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ -#define MUX_PA18E_TC3_WO0 _L_(4) -#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) -#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) -#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ -#define MUX_PA14E_TC3_WO0 _L_(4) -#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) -#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) -#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ -#define MUX_PA15E_TC3_WO1 _L_(4) -#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) -#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) -#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ -#define MUX_PA19E_TC3_WO1 _L_(4) -#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) -#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) -/* ========== PORT definition for TCC2 peripheral ========== */ -#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ -#define MUX_PA14F_TCC2_WO0 _L_(5) -#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) -#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) -#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ -#define MUX_PA30F_TCC2_WO0 _L_(5) -#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) -#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) -#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ -#define MUX_PA15F_TCC2_WO1 _L_(5) -#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) -#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) -#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ -#define MUX_PA31F_TCC2_WO1 _L_(5) -#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) -#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) -#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ -#define MUX_PA24F_TCC2_WO2 _L_(5) -#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) -#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) -#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ -#define MUX_PB02F_TCC2_WO2 _L_(5) -#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) -#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) -/* ========== PORT definition for TCC3 peripheral ========== */ -#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ -#define MUX_PB12F_TCC3_WO0 _L_(5) -#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) -#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) -#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ -#define MUX_PB16F_TCC3_WO0 _L_(5) -#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) -#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) -#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ -#define MUX_PB13F_TCC3_WO1 _L_(5) -#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) -#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) -#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ -#define MUX_PB17F_TCC3_WO1 _L_(5) -#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) -#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC4 peripheral ========== */ -#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ -#define MUX_PA22E_TC4_WO0 _L_(4) -#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) -#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) -#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ -#define MUX_PB08E_TC4_WO0 _L_(4) -#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) -#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) -#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ -#define MUX_PB12E_TC4_WO0 _L_(4) -#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) -#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) -#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ -#define MUX_PA23E_TC4_WO1 _L_(4) -#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) -#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) -#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ -#define MUX_PB09E_TC4_WO1 _L_(4) -#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) -#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) -#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ -#define MUX_PB13E_TC4_WO1 _L_(4) -#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) -#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) -/* ========== PORT definition for TC5 peripheral ========== */ -#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ -#define MUX_PA24E_TC5_WO0 _L_(4) -#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) -#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) -#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ -#define MUX_PB10E_TC5_WO0 _L_(4) -#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) -#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) -#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ -#define MUX_PB14E_TC5_WO0 _L_(4) -#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) -#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) -#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ -#define MUX_PA25E_TC5_WO1 _L_(4) -#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) -#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) -#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ -#define MUX_PB11E_TC5_WO1 _L_(4) -#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) -#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) -#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ -#define MUX_PB15E_TC5_WO1 _L_(4) -#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) -#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) -/* ========== PORT definition for PDEC peripheral ========== */ -#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ -#define MUX_PB18G_PDEC_QDI0 _L_(6) -#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) -#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) -#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ -#define MUX_PB23G_PDEC_QDI0 _L_(6) -#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) -#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) -#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ -#define MUX_PC16G_PDEC_QDI0 _L_(6) -#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) -#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) -#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ -#define MUX_PA24G_PDEC_QDI0 _L_(6) -#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) -#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) -#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ -#define MUX_PB19G_PDEC_QDI1 _L_(6) -#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) -#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) -#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ -#define MUX_PB24G_PDEC_QDI1 _L_(6) -#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) -#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) -#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ -#define MUX_PC17G_PDEC_QDI1 _L_(6) -#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) -#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) -#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ -#define MUX_PA25G_PDEC_QDI1 _L_(6) -#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) -#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) -#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ -#define MUX_PB20G_PDEC_QDI2 _L_(6) -#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) -#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) -#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ -#define MUX_PB25G_PDEC_QDI2 _L_(6) -#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) -#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) -#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ -#define MUX_PC18G_PDEC_QDI2 _L_(6) -#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) -#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) -#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ -#define MUX_PB22G_PDEC_QDI2 _L_(6) -#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) -#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) -/* ========== PORT definition for AC peripheral ========== */ -#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ -#define MUX_PA04B_AC_AIN0 _L_(1) -#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) -#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) -#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ -#define MUX_PA05B_AC_AIN1 _L_(1) -#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) -#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) -#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ -#define MUX_PA06B_AC_AIN2 _L_(1) -#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) -#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) -#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ -#define MUX_PA07B_AC_AIN3 _L_(1) -#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) -#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) -#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ -#define MUX_PA12M_AC_CMP0 _L_(12) -#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) -#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) -#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ -#define MUX_PA18M_AC_CMP0 _L_(12) -#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) -#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) -#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ -#define MUX_PB24M_AC_CMP0 _L_(12) -#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) -#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) -#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ -#define MUX_PA13M_AC_CMP1 _L_(12) -#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) -#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) -#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ -#define MUX_PA19M_AC_CMP1 _L_(12) -#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) -#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) -#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ -#define MUX_PB25M_AC_CMP1 _L_(12) -#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) -#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) -/* ========== PORT definition for QSPI peripheral ========== */ -#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ -#define MUX_PB11H_QSPI_CS _L_(7) -#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) -#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) -#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ -#define MUX_PA08H_QSPI_DATA0 _L_(7) -#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) -#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) -#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ -#define MUX_PA09H_QSPI_DATA1 _L_(7) -#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) -#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) -#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ -#define MUX_PA10H_QSPI_DATA2 _L_(7) -#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) -#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) -#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ -#define MUX_PA11H_QSPI_DATA3 _L_(7) -#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) -#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) -#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ -#define MUX_PB10H_QSPI_SCK _L_(7) -#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) -#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) -/* ========== PORT definition for CCL peripheral ========== */ -#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ -#define MUX_PA04N_CCL_IN0 _L_(13) -#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) -#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) -#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ -#define MUX_PA16N_CCL_IN0 _L_(13) -#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) -#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) -#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ -#define MUX_PB22N_CCL_IN0 _L_(13) -#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) -#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) -#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ -#define MUX_PA05N_CCL_IN1 _L_(13) -#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) -#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) -#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ -#define MUX_PA17N_CCL_IN1 _L_(13) -#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) -#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) -#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ -#define MUX_PB00N_CCL_IN1 _L_(13) -#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) -#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) -#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ -#define MUX_PA06N_CCL_IN2 _L_(13) -#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) -#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) -#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ -#define MUX_PA18N_CCL_IN2 _L_(13) -#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) -#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) -#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ -#define MUX_PB01N_CCL_IN2 _L_(13) -#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) -#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) -#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ -#define MUX_PA08N_CCL_IN3 _L_(13) -#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) -#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) -#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ -#define MUX_PA30N_CCL_IN3 _L_(13) -#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) -#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) -#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ -#define MUX_PA09N_CCL_IN4 _L_(13) -#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) -#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) -#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ -#define MUX_PC27N_CCL_IN4 _L_(13) -#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) -#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) -#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ -#define MUX_PA10N_CCL_IN5 _L_(13) -#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) -#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) -#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ -#define MUX_PC28N_CCL_IN5 _L_(13) -#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) -#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) -#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ -#define MUX_PA22N_CCL_IN6 _L_(13) -#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) -#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) -#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ -#define MUX_PB06N_CCL_IN6 _L_(13) -#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) -#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) -#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ -#define MUX_PA23N_CCL_IN7 _L_(13) -#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) -#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) -#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ -#define MUX_PB07N_CCL_IN7 _L_(13) -#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) -#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) -#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ -#define MUX_PA24N_CCL_IN8 _L_(13) -#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) -#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) -#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ -#define MUX_PB08N_CCL_IN8 _L_(13) -#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) -#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) -#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ -#define MUX_PB14N_CCL_IN9 _L_(13) -#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) -#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) -#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ -#define MUX_PC20N_CCL_IN9 _L_(13) -#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) -#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) -#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ -#define MUX_PB15N_CCL_IN10 _L_(13) -#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) -#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) -#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ -#define MUX_PC21N_CCL_IN10 _L_(13) -#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) -#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) -#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ -#define MUX_PB10N_CCL_IN11 _L_(13) -#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) -#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) -#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ -#define MUX_PB16N_CCL_IN11 _L_(13) -#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) -#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) -#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ -#define MUX_PA07N_CCL_OUT0 _L_(13) -#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) -#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) -#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ -#define MUX_PA19N_CCL_OUT0 _L_(13) -#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) -#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) -#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ -#define MUX_PB02N_CCL_OUT0 _L_(13) -#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) -#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) -#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ -#define MUX_PB23N_CCL_OUT0 _L_(13) -#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) -#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) -#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ -#define MUX_PA11N_CCL_OUT1 _L_(13) -#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) -#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ -#define MUX_PA31N_CCL_OUT1 _L_(13) -#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) -#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) -#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ -#define MUX_PB11N_CCL_OUT1 _L_(13) -#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) -#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) -#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ -#define MUX_PA25N_CCL_OUT2 _L_(13) -#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) -#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) -#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ -#define MUX_PB09N_CCL_OUT2 _L_(13) -#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) -#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) -#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ -#define MUX_PB17N_CCL_OUT3 _L_(13) -#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) -#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) -/* ========== PORT definition for SERCOM4 peripheral ========== */ -#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ -#define MUX_PA13D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) -#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) -#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ -#define MUX_PB08D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) -#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) -#define PIN_PB27D_SERCOM4_PAD0 _L_(59) /**< \brief SERCOM4 signal: PAD0 on PB27 mux D */ -#define MUX_PB27D_SERCOM4_PAD0 _L_(3) -#define PINMUX_PB27D_SERCOM4_PAD0 ((PIN_PB27D_SERCOM4_PAD0 << 16) | MUX_PB27D_SERCOM4_PAD0) -#define PORT_PB27D_SERCOM4_PAD0 (_UL_(1) << 27) -#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ -#define MUX_PB12C_SERCOM4_PAD0 _L_(2) -#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) -#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) -#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ -#define MUX_PA12D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) -#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) -#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ -#define MUX_PB09D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) -#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) -#define PIN_PB26D_SERCOM4_PAD1 _L_(58) /**< \brief SERCOM4 signal: PAD1 on PB26 mux D */ -#define MUX_PB26D_SERCOM4_PAD1 _L_(3) -#define PINMUX_PB26D_SERCOM4_PAD1 ((PIN_PB26D_SERCOM4_PAD1 << 16) | MUX_PB26D_SERCOM4_PAD1) -#define PORT_PB26D_SERCOM4_PAD1 (_UL_(1) << 26) -#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ -#define MUX_PB13C_SERCOM4_PAD1 _L_(2) -#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) -#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) -#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ -#define MUX_PA14D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) -#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ -#define MUX_PB10D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) -#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) -#define PIN_PB28D_SERCOM4_PAD2 _L_(60) /**< \brief SERCOM4 signal: PAD2 on PB28 mux D */ -#define MUX_PB28D_SERCOM4_PAD2 _L_(3) -#define PINMUX_PB28D_SERCOM4_PAD2 ((PIN_PB28D_SERCOM4_PAD2 << 16) | MUX_PB28D_SERCOM4_PAD2) -#define PORT_PB28D_SERCOM4_PAD2 (_UL_(1) << 28) -#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ -#define MUX_PB14C_SERCOM4_PAD2 _L_(2) -#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) -#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) -#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ -#define MUX_PB11D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) -#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) -#define PIN_PB29D_SERCOM4_PAD3 _L_(61) /**< \brief SERCOM4 signal: PAD3 on PB29 mux D */ -#define MUX_PB29D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PB29D_SERCOM4_PAD3 ((PIN_PB29D_SERCOM4_PAD3 << 16) | MUX_PB29D_SERCOM4_PAD3) -#define PORT_PB29D_SERCOM4_PAD3 (_UL_(1) << 29) -#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ -#define MUX_PA15D_SERCOM4_PAD3 _L_(3) -#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) -#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) -#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ -#define MUX_PB15C_SERCOM4_PAD3 _L_(2) -#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) -#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) -/* ========== PORT definition for SERCOM5 peripheral ========== */ -#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ -#define MUX_PA23D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) -#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) -#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ -#define MUX_PB02D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) -#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) -#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ -#define MUX_PB31D_SERCOM5_PAD0 _L_(3) -#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) -#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) -#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ -#define MUX_PB16C_SERCOM5_PAD0 _L_(2) -#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) -#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) -#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ -#define MUX_PA22D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) -#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) -#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ -#define MUX_PB03D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) -#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) -#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ -#define MUX_PB30D_SERCOM5_PAD1 _L_(3) -#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) -#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) -#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ -#define MUX_PB17C_SERCOM5_PAD1 _L_(2) -#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) -#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) -#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ -#define MUX_PA24D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) -#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) -#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ -#define MUX_PB00D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) -#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) -#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ -#define MUX_PB22D_SERCOM5_PAD2 _L_(3) -#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) -#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) -#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ -#define MUX_PA20C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) -#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) -#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ -#define MUX_PB18C_SERCOM5_PAD2 _L_(2) -#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) -#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) -#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ -#define MUX_PA25D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) -#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) -#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ -#define MUX_PB01D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) -#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) -#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ -#define MUX_PB23D_SERCOM5_PAD3 _L_(3) -#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) -#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) -#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ -#define MUX_PA21C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) -#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) -#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ -#define MUX_PB19C_SERCOM5_PAD3 _L_(2) -#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) -#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM6 peripheral ========== */ -#define PIN_PD09D_SERCOM6_PAD0 _L_(105) /**< \brief SERCOM6 signal: PAD0 on PD09 mux D */ -#define MUX_PD09D_SERCOM6_PAD0 _L_(3) -#define PINMUX_PD09D_SERCOM6_PAD0 ((PIN_PD09D_SERCOM6_PAD0 << 16) | MUX_PD09D_SERCOM6_PAD0) -#define PORT_PD09D_SERCOM6_PAD0 (_UL_(1) << 9) -#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ -#define MUX_PC13D_SERCOM6_PAD0 _L_(3) -#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) -#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) -#define PIN_PC04C_SERCOM6_PAD0 _L_(68) /**< \brief SERCOM6 signal: PAD0 on PC04 mux C */ -#define MUX_PC04C_SERCOM6_PAD0 _L_(2) -#define PINMUX_PC04C_SERCOM6_PAD0 ((PIN_PC04C_SERCOM6_PAD0 << 16) | MUX_PC04C_SERCOM6_PAD0) -#define PORT_PC04C_SERCOM6_PAD0 (_UL_(1) << 4) -#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ -#define MUX_PC16C_SERCOM6_PAD0 _L_(2) -#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) -#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) -#define PIN_PD08D_SERCOM6_PAD1 _L_(104) /**< \brief SERCOM6 signal: PAD1 on PD08 mux D */ -#define MUX_PD08D_SERCOM6_PAD1 _L_(3) -#define PINMUX_PD08D_SERCOM6_PAD1 ((PIN_PD08D_SERCOM6_PAD1 << 16) | MUX_PD08D_SERCOM6_PAD1) -#define PORT_PD08D_SERCOM6_PAD1 (_UL_(1) << 8) -#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ -#define MUX_PC12D_SERCOM6_PAD1 _L_(3) -#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) -#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) -#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ -#define MUX_PC05C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) -#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) -#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ -#define MUX_PC17C_SERCOM6_PAD1 _L_(2) -#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) -#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) -#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ -#define MUX_PC14D_SERCOM6_PAD2 _L_(3) -#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) -#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) -#define PIN_PD10D_SERCOM6_PAD2 _L_(106) /**< \brief SERCOM6 signal: PAD2 on PD10 mux D */ -#define MUX_PD10D_SERCOM6_PAD2 _L_(3) -#define PINMUX_PD10D_SERCOM6_PAD2 ((PIN_PD10D_SERCOM6_PAD2 << 16) | MUX_PD10D_SERCOM6_PAD2) -#define PORT_PD10D_SERCOM6_PAD2 (_UL_(1) << 10) -#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ -#define MUX_PC06C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) -#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) -#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ -#define MUX_PC10C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) -#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) -#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ -#define MUX_PC18C_SERCOM6_PAD2 _L_(2) -#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) -#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) -#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ -#define MUX_PC15D_SERCOM6_PAD3 _L_(3) -#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) -#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) -#define PIN_PD11D_SERCOM6_PAD3 _L_(107) /**< \brief SERCOM6 signal: PAD3 on PD11 mux D */ -#define MUX_PD11D_SERCOM6_PAD3 _L_(3) -#define PINMUX_PD11D_SERCOM6_PAD3 ((PIN_PD11D_SERCOM6_PAD3 << 16) | MUX_PD11D_SERCOM6_PAD3) -#define PORT_PD11D_SERCOM6_PAD3 (_UL_(1) << 11) -#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ -#define MUX_PC07C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) -#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) -#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ -#define MUX_PC11C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) -#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) -#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ -#define MUX_PC19C_SERCOM6_PAD3 _L_(2) -#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) -#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) -/* ========== PORT definition for SERCOM7 peripheral ========== */ -#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ -#define MUX_PB21D_SERCOM7_PAD0 _L_(3) -#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) -#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) -#define PIN_PD08C_SERCOM7_PAD0 _L_(104) /**< \brief SERCOM7 signal: PAD0 on PD08 mux C */ -#define MUX_PD08C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PD08C_SERCOM7_PAD0 ((PIN_PD08C_SERCOM7_PAD0 << 16) | MUX_PD08C_SERCOM7_PAD0) -#define PORT_PD08C_SERCOM7_PAD0 (_UL_(1) << 8) -#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ -#define MUX_PB30C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) -#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) -#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ -#define MUX_PC12C_SERCOM7_PAD0 _L_(2) -#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) -#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) -#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ -#define MUX_PB20D_SERCOM7_PAD1 _L_(3) -#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) -#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) -#define PIN_PD09C_SERCOM7_PAD1 _L_(105) /**< \brief SERCOM7 signal: PAD1 on PD09 mux C */ -#define MUX_PD09C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PD09C_SERCOM7_PAD1 ((PIN_PD09C_SERCOM7_PAD1 << 16) | MUX_PD09C_SERCOM7_PAD1) -#define PORT_PD09C_SERCOM7_PAD1 (_UL_(1) << 9) -#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ -#define MUX_PB31C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) -#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) -#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ -#define MUX_PC13C_SERCOM7_PAD1 _L_(2) -#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) -#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) -#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ -#define MUX_PB18D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) -#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) -#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ -#define MUX_PC10D_SERCOM7_PAD2 _L_(3) -#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) -#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) -#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ -#define MUX_PC14C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) -#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) -#define PIN_PD10C_SERCOM7_PAD2 _L_(106) /**< \brief SERCOM7 signal: PAD2 on PD10 mux C */ -#define MUX_PD10C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PD10C_SERCOM7_PAD2 ((PIN_PD10C_SERCOM7_PAD2 << 16) | MUX_PD10C_SERCOM7_PAD2) -#define PORT_PD10C_SERCOM7_PAD2 (_UL_(1) << 10) -#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ -#define MUX_PA30C_SERCOM7_PAD2 _L_(2) -#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) -#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) -#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ -#define MUX_PB19D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) -#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) -#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ -#define MUX_PC11D_SERCOM7_PAD3 _L_(3) -#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) -#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) -#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ -#define MUX_PC15C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) -#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) -#define PIN_PD11C_SERCOM7_PAD3 _L_(107) /**< \brief SERCOM7 signal: PAD3 on PD11 mux C */ -#define MUX_PD11C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PD11C_SERCOM7_PAD3 ((PIN_PD11C_SERCOM7_PAD3 << 16) | MUX_PD11C_SERCOM7_PAD3) -#define PORT_PD11C_SERCOM7_PAD3 (_UL_(1) << 11) -#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ -#define MUX_PA31C_SERCOM7_PAD3 _L_(2) -#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) -#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) -/* ========== PORT definition for TCC4 peripheral ========== */ -#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ -#define MUX_PB14F_TCC4_WO0 _L_(5) -#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) -#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) -#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ -#define MUX_PB30F_TCC4_WO0 _L_(5) -#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) -#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) -#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ -#define MUX_PB15F_TCC4_WO1 _L_(5) -#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) -#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) -#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ -#define MUX_PB31F_TCC4_WO1 _L_(5) -#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) -#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) -/* ========== PORT definition for TC6 peripheral ========== */ -#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ -#define MUX_PA30E_TC6_WO0 _L_(4) -#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) -#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) -#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ -#define MUX_PB02E_TC6_WO0 _L_(4) -#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) -#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) -#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ -#define MUX_PB16E_TC6_WO0 _L_(4) -#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) -#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) -#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ -#define MUX_PA31E_TC6_WO1 _L_(4) -#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) -#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) -#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ -#define MUX_PB03E_TC6_WO1 _L_(4) -#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) -#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) -#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ -#define MUX_PB17E_TC6_WO1 _L_(4) -#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) -#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) -/* ========== PORT definition for TC7 peripheral ========== */ -#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ -#define MUX_PA20E_TC7_WO0 _L_(4) -#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) -#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) -#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ -#define MUX_PB00E_TC7_WO0 _L_(4) -#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) -#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) -#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ -#define MUX_PB22E_TC7_WO0 _L_(4) -#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) -#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) -#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ -#define MUX_PA21E_TC7_WO1 _L_(4) -#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) -#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) -#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ -#define MUX_PB01E_TC7_WO1 _L_(4) -#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) -#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) -#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ -#define MUX_PB23E_TC7_WO1 _L_(4) -#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) -#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) -/* ========== PORT definition for ADC0 peripheral ========== */ -#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ -#define MUX_PA02B_ADC0_AIN0 _L_(1) -#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) -#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) -#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ -#define MUX_PA03B_ADC0_AIN1 _L_(1) -#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) -#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ -#define MUX_PB08B_ADC0_AIN2 _L_(1) -#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) -#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ -#define MUX_PB09B_ADC0_AIN3 _L_(1) -#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) -#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ -#define MUX_PA04B_ADC0_AIN4 _L_(1) -#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) -#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) -#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ -#define MUX_PA05B_ADC0_AIN5 _L_(1) -#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) -#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) -#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ -#define MUX_PA06B_ADC0_AIN6 _L_(1) -#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) -#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ -#define MUX_PA07B_ADC0_AIN7 _L_(1) -#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) -#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ -#define MUX_PA08B_ADC0_AIN8 _L_(1) -#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) -#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ -#define MUX_PA09B_ADC0_AIN9 _L_(1) -#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) -#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ -#define MUX_PA10B_ADC0_AIN10 _L_(1) -#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) -#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ -#define MUX_PA11B_ADC0_AIN11 _L_(1) -#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) -#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) -#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ -#define MUX_PB00B_ADC0_AIN12 _L_(1) -#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) -#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ -#define MUX_PB01B_ADC0_AIN13 _L_(1) -#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) -#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) -#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ -#define MUX_PB02B_ADC0_AIN14 _L_(1) -#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) -#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ -#define MUX_PB03B_ADC0_AIN15 _L_(1) -#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) -#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) -#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ -#define MUX_PA03O_ADC0_DRV0 _L_(14) -#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) -#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) -#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ -#define MUX_PB08O_ADC0_DRV1 _L_(14) -#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) -#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) -#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ -#define MUX_PB09O_ADC0_DRV2 _L_(14) -#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) -#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) -#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ -#define MUX_PA04O_ADC0_DRV3 _L_(14) -#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) -#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) -#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ -#define MUX_PA06O_ADC0_DRV4 _L_(14) -#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) -#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) -#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ -#define MUX_PA07O_ADC0_DRV5 _L_(14) -#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) -#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) -#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ -#define MUX_PA08O_ADC0_DRV6 _L_(14) -#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) -#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) -#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ -#define MUX_PA09O_ADC0_DRV7 _L_(14) -#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) -#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) -#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ -#define MUX_PA10O_ADC0_DRV8 _L_(14) -#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) -#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) -#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ -#define MUX_PA11O_ADC0_DRV9 _L_(14) -#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) -#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) -#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ -#define MUX_PA16O_ADC0_DRV10 _L_(14) -#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) -#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) -#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ -#define MUX_PA17O_ADC0_DRV11 _L_(14) -#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) -#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) -#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ -#define MUX_PA18O_ADC0_DRV12 _L_(14) -#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) -#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) -#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ -#define MUX_PA19O_ADC0_DRV13 _L_(14) -#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) -#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) -#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ -#define MUX_PA20O_ADC0_DRV14 _L_(14) -#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) -#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) -#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ -#define MUX_PA21O_ADC0_DRV15 _L_(14) -#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) -#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) -#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ -#define MUX_PA22O_ADC0_DRV16 _L_(14) -#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) -#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) -#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ -#define MUX_PA23O_ADC0_DRV17 _L_(14) -#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) -#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) -#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ -#define MUX_PA27O_ADC0_DRV18 _L_(14) -#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) -#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) -#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ -#define MUX_PA30O_ADC0_DRV19 _L_(14) -#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) -#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) -#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ -#define MUX_PB02O_ADC0_DRV20 _L_(14) -#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) -#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) -#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ -#define MUX_PB03O_ADC0_DRV21 _L_(14) -#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) -#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) -#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ -#define MUX_PB04O_ADC0_DRV22 _L_(14) -#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) -#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) -#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ -#define MUX_PB05O_ADC0_DRV23 _L_(14) -#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) -#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) -#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ -#define MUX_PB06O_ADC0_DRV24 _L_(14) -#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) -#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) -#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ -#define MUX_PB07O_ADC0_DRV25 _L_(14) -#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) -#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) -#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ -#define MUX_PB12O_ADC0_DRV26 _L_(14) -#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) -#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) -#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ -#define MUX_PB13O_ADC0_DRV27 _L_(14) -#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) -#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) -#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ -#define MUX_PB14O_ADC0_DRV28 _L_(14) -#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) -#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) -#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ -#define MUX_PB15O_ADC0_DRV29 _L_(14) -#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) -#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) -#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ -#define MUX_PB00O_ADC0_DRV30 _L_(14) -#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) -#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) -#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ -#define MUX_PB01O_ADC0_DRV31 _L_(14) -#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) -#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) -#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ -#define MUX_PA03B_ADC0_PTCXY0 _L_(1) -#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) -#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) -#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ -#define MUX_PB08B_ADC0_PTCXY1 _L_(1) -#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) -#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) -#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ -#define MUX_PB09B_ADC0_PTCXY2 _L_(1) -#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) -#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) -#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ -#define MUX_PA04B_ADC0_PTCXY3 _L_(1) -#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) -#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) -#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ -#define MUX_PA06B_ADC0_PTCXY4 _L_(1) -#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) -#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) -#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ -#define MUX_PA07B_ADC0_PTCXY5 _L_(1) -#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) -#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) -#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ -#define MUX_PA08B_ADC0_PTCXY6 _L_(1) -#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) -#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) -#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ -#define MUX_PA09B_ADC0_PTCXY7 _L_(1) -#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) -#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) -#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ -#define MUX_PA10B_ADC0_PTCXY8 _L_(1) -#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) -#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) -#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ -#define MUX_PA11B_ADC0_PTCXY9 _L_(1) -#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) -#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) -#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ -#define MUX_PA16B_ADC0_PTCXY10 _L_(1) -#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) -#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) -#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ -#define MUX_PA17B_ADC0_PTCXY11 _L_(1) -#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) -#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) -#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ -#define MUX_PA18B_ADC0_PTCXY12 _L_(1) -#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) -#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) -#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ -#define MUX_PA19B_ADC0_PTCXY13 _L_(1) -#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) -#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) -#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ -#define MUX_PA20B_ADC0_PTCXY14 _L_(1) -#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) -#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) -#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ -#define MUX_PA21B_ADC0_PTCXY15 _L_(1) -#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) -#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) -#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ -#define MUX_PA22B_ADC0_PTCXY16 _L_(1) -#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) -#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) -#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ -#define MUX_PA23B_ADC0_PTCXY17 _L_(1) -#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) -#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) -#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ -#define MUX_PA27B_ADC0_PTCXY18 _L_(1) -#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) -#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) -#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ -#define MUX_PA30B_ADC0_PTCXY19 _L_(1) -#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) -#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) -#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ -#define MUX_PB02B_ADC0_PTCXY20 _L_(1) -#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) -#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) -#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ -#define MUX_PB03B_ADC0_PTCXY21 _L_(1) -#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) -#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) -#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ -#define MUX_PB04B_ADC0_PTCXY22 _L_(1) -#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) -#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) -#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ -#define MUX_PB05B_ADC0_PTCXY23 _L_(1) -#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) -#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) -#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ -#define MUX_PB06B_ADC0_PTCXY24 _L_(1) -#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) -#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) -#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ -#define MUX_PB07B_ADC0_PTCXY25 _L_(1) -#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) -#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) -#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ -#define MUX_PB12B_ADC0_PTCXY26 _L_(1) -#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) -#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) -#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ -#define MUX_PB13B_ADC0_PTCXY27 _L_(1) -#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) -#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) -#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ -#define MUX_PB14B_ADC0_PTCXY28 _L_(1) -#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) -#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) -#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ -#define MUX_PB15B_ADC0_PTCXY29 _L_(1) -#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) -#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) -#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ -#define MUX_PB00B_ADC0_PTCXY30 _L_(1) -#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) -#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) -#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ -#define MUX_PB01B_ADC0_PTCXY31 _L_(1) -#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) -#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) -/* ========== PORT definition for ADC1 peripheral ========== */ -#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ -#define MUX_PB08B_ADC1_AIN0 _L_(1) -#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) -#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) -#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ -#define MUX_PB09B_ADC1_AIN1 _L_(1) -#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) -#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) -#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ -#define MUX_PA08B_ADC1_AIN2 _L_(1) -#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) -#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) -#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ -#define MUX_PA09B_ADC1_AIN3 _L_(1) -#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) -#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) -#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ -#define MUX_PC02B_ADC1_AIN4 _L_(1) -#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) -#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) -#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ -#define MUX_PC03B_ADC1_AIN5 _L_(1) -#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) -#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) -#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ -#define MUX_PB04B_ADC1_AIN6 _L_(1) -#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) -#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) -#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ -#define MUX_PB05B_ADC1_AIN7 _L_(1) -#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) -#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) -#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ -#define MUX_PB06B_ADC1_AIN8 _L_(1) -#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) -#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) -#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ -#define MUX_PB07B_ADC1_AIN9 _L_(1) -#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) -#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) -#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ -#define MUX_PC00B_ADC1_AIN10 _L_(1) -#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) -#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) -#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ -#define MUX_PC01B_ADC1_AIN11 _L_(1) -#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) -#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) -#define PIN_PC30B_ADC1_AIN12 _L_(94) /**< \brief ADC1 signal: AIN12 on PC30 mux B */ -#define MUX_PC30B_ADC1_AIN12 _L_(1) -#define PINMUX_PC30B_ADC1_AIN12 ((PIN_PC30B_ADC1_AIN12 << 16) | MUX_PC30B_ADC1_AIN12) -#define PORT_PC30B_ADC1_AIN12 (_UL_(1) << 30) -#define PIN_PC31B_ADC1_AIN13 _L_(95) /**< \brief ADC1 signal: AIN13 on PC31 mux B */ -#define MUX_PC31B_ADC1_AIN13 _L_(1) -#define PINMUX_PC31B_ADC1_AIN13 ((PIN_PC31B_ADC1_AIN13 << 16) | MUX_PC31B_ADC1_AIN13) -#define PORT_PC31B_ADC1_AIN13 (_UL_(1) << 31) -#define PIN_PD00B_ADC1_AIN14 _L_(96) /**< \brief ADC1 signal: AIN14 on PD00 mux B */ -#define MUX_PD00B_ADC1_AIN14 _L_(1) -#define PINMUX_PD00B_ADC1_AIN14 ((PIN_PD00B_ADC1_AIN14 << 16) | MUX_PD00B_ADC1_AIN14) -#define PORT_PD00B_ADC1_AIN14 (_UL_(1) << 0) -#define PIN_PD01B_ADC1_AIN15 _L_(97) /**< \brief ADC1 signal: AIN15 on PD01 mux B */ -#define MUX_PD01B_ADC1_AIN15 _L_(1) -#define PINMUX_PD01B_ADC1_AIN15 ((PIN_PD01B_ADC1_AIN15 << 16) | MUX_PD01B_ADC1_AIN15) -#define PORT_PD01B_ADC1_AIN15 (_UL_(1) << 1) -/* ========== PORT definition for DAC peripheral ========== */ -#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ -#define MUX_PA02B_DAC_VOUT0 _L_(1) -#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) -#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) -#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ -#define MUX_PA05B_DAC_VOUT1 _L_(1) -#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) -#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) -/* ========== PORT definition for I2S peripheral ========== */ -#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ -#define MUX_PA09J_I2S_FS0 _L_(9) -#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) -#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) -#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ -#define MUX_PA20J_I2S_FS0 _L_(9) -#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) -#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) -#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ -#define MUX_PA23J_I2S_FS1 _L_(9) -#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) -#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) -#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ -#define MUX_PB11J_I2S_FS1 _L_(9) -#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) -#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) -#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ -#define MUX_PA08J_I2S_MCK0 _L_(9) -#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) -#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) -#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ -#define MUX_PB17J_I2S_MCK0 _L_(9) -#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) -#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) -#define PIN_PB29J_I2S_MCK1 _L_(61) /**< \brief I2S signal: MCK1 on PB29 mux J */ -#define MUX_PB29J_I2S_MCK1 _L_(9) -#define PINMUX_PB29J_I2S_MCK1 ((PIN_PB29J_I2S_MCK1 << 16) | MUX_PB29J_I2S_MCK1) -#define PORT_PB29J_I2S_MCK1 (_UL_(1) << 29) -#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ -#define MUX_PB13J_I2S_MCK1 _L_(9) -#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) -#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) -#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ -#define MUX_PA10J_I2S_SCK0 _L_(9) -#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) -#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) -#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ -#define MUX_PB16J_I2S_SCK0 _L_(9) -#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) -#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) -#define PIN_PB28J_I2S_SCK1 _L_(60) /**< \brief I2S signal: SCK1 on PB28 mux J */ -#define MUX_PB28J_I2S_SCK1 _L_(9) -#define PINMUX_PB28J_I2S_SCK1 ((PIN_PB28J_I2S_SCK1 << 16) | MUX_PB28J_I2S_SCK1) -#define PORT_PB28J_I2S_SCK1 (_UL_(1) << 28) -#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ -#define MUX_PB12J_I2S_SCK1 _L_(9) -#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) -#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) -#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ -#define MUX_PA22J_I2S_SDI _L_(9) -#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) -#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) -#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ -#define MUX_PB10J_I2S_SDI _L_(9) -#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) -#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) -#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ -#define MUX_PA11J_I2S_SDO _L_(9) -#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) -#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) -#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ -#define MUX_PA21J_I2S_SDO _L_(9) -#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) -#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) -/* ========== PORT definition for PCC peripheral ========== */ -#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ -#define MUX_PA14K_PCC_CLK _L_(10) -#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) -#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) -#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ -#define MUX_PA16K_PCC_DATA0 _L_(10) -#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) -#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) -#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ -#define MUX_PA17K_PCC_DATA1 _L_(10) -#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) -#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) -#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ -#define MUX_PA18K_PCC_DATA2 _L_(10) -#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) -#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) -#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ -#define MUX_PA19K_PCC_DATA3 _L_(10) -#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) -#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) -#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ -#define MUX_PA20K_PCC_DATA4 _L_(10) -#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) -#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) -#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ -#define MUX_PA21K_PCC_DATA5 _L_(10) -#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) -#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) -#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ -#define MUX_PA22K_PCC_DATA6 _L_(10) -#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) -#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) -#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ -#define MUX_PA23K_PCC_DATA7 _L_(10) -#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) -#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) -#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ -#define MUX_PB14K_PCC_DATA8 _L_(10) -#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) -#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) -#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ -#define MUX_PB15K_PCC_DATA9 _L_(10) -#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) -#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) -#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ -#define MUX_PC12K_PCC_DATA10 _L_(10) -#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) -#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) -#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ -#define MUX_PC13K_PCC_DATA11 _L_(10) -#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) -#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) -#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ -#define MUX_PC14K_PCC_DATA12 _L_(10) -#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) -#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) -#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ -#define MUX_PC15K_PCC_DATA13 _L_(10) -#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) -#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) -#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ -#define MUX_PA12K_PCC_DEN1 _L_(10) -#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) -#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) -#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ -#define MUX_PA13K_PCC_DEN2 _L_(10) -#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) -#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) -/* ========== PORT definition for SDHC0 peripheral ========== */ -#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ -#define MUX_PA06I_SDHC0_SDCD _L_(8) -#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) -#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ -#define MUX_PA12I_SDHC0_SDCD _L_(8) -#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) -#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ -#define MUX_PB12I_SDHC0_SDCD _L_(8) -#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) -#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) -#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ -#define MUX_PC06I_SDHC0_SDCD _L_(8) -#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) -#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) -#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ -#define MUX_PB11I_SDHC0_SDCK _L_(8) -#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) -#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) -#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ -#define MUX_PA08I_SDHC0_SDCMD _L_(8) -#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) -#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) -#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ -#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) -#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) -#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) -#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ -#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) -#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) -#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) -#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ -#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) -#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) -#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) -#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ -#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) -#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) -#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) -#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ -#define MUX_PA07I_SDHC0_SDWP _L_(8) -#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) -#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) -#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ -#define MUX_PA13I_SDHC0_SDWP _L_(8) -#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) -#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ -#define MUX_PB13I_SDHC0_SDWP _L_(8) -#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) -#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) -#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ -#define MUX_PC07I_SDHC0_SDWP _L_(8) -#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) -#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) -/* ========== PORT definition for SDHC1 peripheral ========== */ -#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ -#define MUX_PB16I_SDHC1_SDCD _L_(8) -#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) -#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) -#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ -#define MUX_PC20I_SDHC1_SDCD _L_(8) -#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) -#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) -#define PIN_PD20I_SDHC1_SDCD _L_(116) /**< \brief SDHC1 signal: SDCD on PD20 mux I */ -#define MUX_PD20I_SDHC1_SDCD _L_(8) -#define PINMUX_PD20I_SDHC1_SDCD ((PIN_PD20I_SDHC1_SDCD << 16) | MUX_PD20I_SDHC1_SDCD) -#define PORT_PD20I_SDHC1_SDCD (_UL_(1) << 20) -#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ -#define MUX_PA21I_SDHC1_SDCK _L_(8) -#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) -#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) -#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ -#define MUX_PA20I_SDHC1_SDCMD _L_(8) -#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) -#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) -#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ -#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) -#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) -#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) -#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ -#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) -#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) -#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) -#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ -#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) -#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) -#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) -#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ -#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) -#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) -#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) -#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ -#define MUX_PB17I_SDHC1_SDWP _L_(8) -#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) -#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) -#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ -#define MUX_PC21I_SDHC1_SDWP _L_(8) -#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) -#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) -#define PIN_PD21I_SDHC1_SDWP _L_(117) /**< \brief SDHC1 signal: SDWP on PD21 mux I */ -#define MUX_PD21I_SDHC1_SDWP _L_(8) -#define PINMUX_PD21I_SDHC1_SDWP ((PIN_PD21I_SDHC1_SDWP << 16) | MUX_PD21I_SDHC1_SDWP) -#define PORT_PD21I_SDHC1_SDWP (_UL_(1) << 21) - -#endif /* _SAMD51P20A_PIO_ */ +/** + * \file + * + * \brief Peripheral I/O description for SAMD51P20A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51P20A_PIO_ +#define _SAMD51P20A_PIO_ + +#define PIN_PA00 0 /**< \brief Pin Number for PA00 */ +#define PORT_PA00 (_UL_(1) << 0) /**< \brief PORT Mask for PA00 */ +#define PIN_PA01 1 /**< \brief Pin Number for PA01 */ +#define PORT_PA01 (_UL_(1) << 1) /**< \brief PORT Mask for PA01 */ +#define PIN_PA02 2 /**< \brief Pin Number for PA02 */ +#define PORT_PA02 (_UL_(1) << 2) /**< \brief PORT Mask for PA02 */ +#define PIN_PA03 3 /**< \brief Pin Number for PA03 */ +#define PORT_PA03 (_UL_(1) << 3) /**< \brief PORT Mask for PA03 */ +#define PIN_PA04 4 /**< \brief Pin Number for PA04 */ +#define PORT_PA04 (_UL_(1) << 4) /**< \brief PORT Mask for PA04 */ +#define PIN_PA05 5 /**< \brief Pin Number for PA05 */ +#define PORT_PA05 (_UL_(1) << 5) /**< \brief PORT Mask for PA05 */ +#define PIN_PA06 6 /**< \brief Pin Number for PA06 */ +#define PORT_PA06 (_UL_(1) << 6) /**< \brief PORT Mask for PA06 */ +#define PIN_PA07 7 /**< \brief Pin Number for PA07 */ +#define PORT_PA07 (_UL_(1) << 7) /**< \brief PORT Mask for PA07 */ +#define PIN_PA08 8 /**< \brief Pin Number for PA08 */ +#define PORT_PA08 (_UL_(1) << 8) /**< \brief PORT Mask for PA08 */ +#define PIN_PA09 9 /**< \brief Pin Number for PA09 */ +#define PORT_PA09 (_UL_(1) << 9) /**< \brief PORT Mask for PA09 */ +#define PIN_PA10 10 /**< \brief Pin Number for PA10 */ +#define PORT_PA10 (_UL_(1) << 10) /**< \brief PORT Mask for PA10 */ +#define PIN_PA11 11 /**< \brief Pin Number for PA11 */ +#define PORT_PA11 (_UL_(1) << 11) /**< \brief PORT Mask for PA11 */ +#define PIN_PA12 12 /**< \brief Pin Number for PA12 */ +#define PORT_PA12 (_UL_(1) << 12) /**< \brief PORT Mask for PA12 */ +#define PIN_PA13 13 /**< \brief Pin Number for PA13 */ +#define PORT_PA13 (_UL_(1) << 13) /**< \brief PORT Mask for PA13 */ +#define PIN_PA14 14 /**< \brief Pin Number for PA14 */ +#define PORT_PA14 (_UL_(1) << 14) /**< \brief PORT Mask for PA14 */ +#define PIN_PA15 15 /**< \brief Pin Number for PA15 */ +#define PORT_PA15 (_UL_(1) << 15) /**< \brief PORT Mask for PA15 */ +#define PIN_PA16 16 /**< \brief Pin Number for PA16 */ +#define PORT_PA16 (_UL_(1) << 16) /**< \brief PORT Mask for PA16 */ +#define PIN_PA17 17 /**< \brief Pin Number for PA17 */ +#define PORT_PA17 (_UL_(1) << 17) /**< \brief PORT Mask for PA17 */ +#define PIN_PA18 18 /**< \brief Pin Number for PA18 */ +#define PORT_PA18 (_UL_(1) << 18) /**< \brief PORT Mask for PA18 */ +#define PIN_PA19 19 /**< \brief Pin Number for PA19 */ +#define PORT_PA19 (_UL_(1) << 19) /**< \brief PORT Mask for PA19 */ +#define PIN_PA20 20 /**< \brief Pin Number for PA20 */ +#define PORT_PA20 (_UL_(1) << 20) /**< \brief PORT Mask for PA20 */ +#define PIN_PA21 21 /**< \brief Pin Number for PA21 */ +#define PORT_PA21 (_UL_(1) << 21) /**< \brief PORT Mask for PA21 */ +#define PIN_PA22 22 /**< \brief Pin Number for PA22 */ +#define PORT_PA22 (_UL_(1) << 22) /**< \brief PORT Mask for PA22 */ +#define PIN_PA23 23 /**< \brief Pin Number for PA23 */ +#define PORT_PA23 (_UL_(1) << 23) /**< \brief PORT Mask for PA23 */ +#define PIN_PA24 24 /**< \brief Pin Number for PA24 */ +#define PORT_PA24 (_UL_(1) << 24) /**< \brief PORT Mask for PA24 */ +#define PIN_PA25 25 /**< \brief Pin Number for PA25 */ +#define PORT_PA25 (_UL_(1) << 25) /**< \brief PORT Mask for PA25 */ +#define PIN_PA27 27 /**< \brief Pin Number for PA27 */ +#define PORT_PA27 (_UL_(1) << 27) /**< \brief PORT Mask for PA27 */ +#define PIN_PA30 30 /**< \brief Pin Number for PA30 */ +#define PORT_PA30 (_UL_(1) << 30) /**< \brief PORT Mask for PA30 */ +#define PIN_PA31 31 /**< \brief Pin Number for PA31 */ +#define PORT_PA31 (_UL_(1) << 31) /**< \brief PORT Mask for PA31 */ +#define PIN_PB00 32 /**< \brief Pin Number for PB00 */ +#define PORT_PB00 (_UL_(1) << 0) /**< \brief PORT Mask for PB00 */ +#define PIN_PB01 33 /**< \brief Pin Number for PB01 */ +#define PORT_PB01 (_UL_(1) << 1) /**< \brief PORT Mask for PB01 */ +#define PIN_PB02 34 /**< \brief Pin Number for PB02 */ +#define PORT_PB02 (_UL_(1) << 2) /**< \brief PORT Mask for PB02 */ +#define PIN_PB03 35 /**< \brief Pin Number for PB03 */ +#define PORT_PB03 (_UL_(1) << 3) /**< \brief PORT Mask for PB03 */ +#define PIN_PB04 36 /**< \brief Pin Number for PB04 */ +#define PORT_PB04 (_UL_(1) << 4) /**< \brief PORT Mask for PB04 */ +#define PIN_PB05 37 /**< \brief Pin Number for PB05 */ +#define PORT_PB05 (_UL_(1) << 5) /**< \brief PORT Mask for PB05 */ +#define PIN_PB06 38 /**< \brief Pin Number for PB06 */ +#define PORT_PB06 (_UL_(1) << 6) /**< \brief PORT Mask for PB06 */ +#define PIN_PB07 39 /**< \brief Pin Number for PB07 */ +#define PORT_PB07 (_UL_(1) << 7) /**< \brief PORT Mask for PB07 */ +#define PIN_PB08 40 /**< \brief Pin Number for PB08 */ +#define PORT_PB08 (_UL_(1) << 8) /**< \brief PORT Mask for PB08 */ +#define PIN_PB09 41 /**< \brief Pin Number for PB09 */ +#define PORT_PB09 (_UL_(1) << 9) /**< \brief PORT Mask for PB09 */ +#define PIN_PB10 42 /**< \brief Pin Number for PB10 */ +#define PORT_PB10 (_UL_(1) << 10) /**< \brief PORT Mask for PB10 */ +#define PIN_PB11 43 /**< \brief Pin Number for PB11 */ +#define PORT_PB11 (_UL_(1) << 11) /**< \brief PORT Mask for PB11 */ +#define PIN_PB12 44 /**< \brief Pin Number for PB12 */ +#define PORT_PB12 (_UL_(1) << 12) /**< \brief PORT Mask for PB12 */ +#define PIN_PB13 45 /**< \brief Pin Number for PB13 */ +#define PORT_PB13 (_UL_(1) << 13) /**< \brief PORT Mask for PB13 */ +#define PIN_PB14 46 /**< \brief Pin Number for PB14 */ +#define PORT_PB14 (_UL_(1) << 14) /**< \brief PORT Mask for PB14 */ +#define PIN_PB15 47 /**< \brief Pin Number for PB15 */ +#define PORT_PB15 (_UL_(1) << 15) /**< \brief PORT Mask for PB15 */ +#define PIN_PB16 48 /**< \brief Pin Number for PB16 */ +#define PORT_PB16 (_UL_(1) << 16) /**< \brief PORT Mask for PB16 */ +#define PIN_PB17 49 /**< \brief Pin Number for PB17 */ +#define PORT_PB17 (_UL_(1) << 17) /**< \brief PORT Mask for PB17 */ +#define PIN_PB18 50 /**< \brief Pin Number for PB18 */ +#define PORT_PB18 (_UL_(1) << 18) /**< \brief PORT Mask for PB18 */ +#define PIN_PB19 51 /**< \brief Pin Number for PB19 */ +#define PORT_PB19 (_UL_(1) << 19) /**< \brief PORT Mask for PB19 */ +#define PIN_PB20 52 /**< \brief Pin Number for PB20 */ +#define PORT_PB20 (_UL_(1) << 20) /**< \brief PORT Mask for PB20 */ +#define PIN_PB21 53 /**< \brief Pin Number for PB21 */ +#define PORT_PB21 (_UL_(1) << 21) /**< \brief PORT Mask for PB21 */ +#define PIN_PB22 54 /**< \brief Pin Number for PB22 */ +#define PORT_PB22 (_UL_(1) << 22) /**< \brief PORT Mask for PB22 */ +#define PIN_PB23 55 /**< \brief Pin Number for PB23 */ +#define PORT_PB23 (_UL_(1) << 23) /**< \brief PORT Mask for PB23 */ +#define PIN_PB24 56 /**< \brief Pin Number for PB24 */ +#define PORT_PB24 (_UL_(1) << 24) /**< \brief PORT Mask for PB24 */ +#define PIN_PB25 57 /**< \brief Pin Number for PB25 */ +#define PORT_PB25 (_UL_(1) << 25) /**< \brief PORT Mask for PB25 */ +#define PIN_PB26 58 /**< \brief Pin Number for PB26 */ +#define PORT_PB26 (_UL_(1) << 26) /**< \brief PORT Mask for PB26 */ +#define PIN_PB27 59 /**< \brief Pin Number for PB27 */ +#define PORT_PB27 (_UL_(1) << 27) /**< \brief PORT Mask for PB27 */ +#define PIN_PB28 60 /**< \brief Pin Number for PB28 */ +#define PORT_PB28 (_UL_(1) << 28) /**< \brief PORT Mask for PB28 */ +#define PIN_PB29 61 /**< \brief Pin Number for PB29 */ +#define PORT_PB29 (_UL_(1) << 29) /**< \brief PORT Mask for PB29 */ +#define PIN_PB30 62 /**< \brief Pin Number for PB30 */ +#define PORT_PB30 (_UL_(1) << 30) /**< \brief PORT Mask for PB30 */ +#define PIN_PB31 63 /**< \brief Pin Number for PB31 */ +#define PORT_PB31 (_UL_(1) << 31) /**< \brief PORT Mask for PB31 */ +#define PIN_PC00 64 /**< \brief Pin Number for PC00 */ +#define PORT_PC00 (_UL_(1) << 0) /**< \brief PORT Mask for PC00 */ +#define PIN_PC01 65 /**< \brief Pin Number for PC01 */ +#define PORT_PC01 (_UL_(1) << 1) /**< \brief PORT Mask for PC01 */ +#define PIN_PC02 66 /**< \brief Pin Number for PC02 */ +#define PORT_PC02 (_UL_(1) << 2) /**< \brief PORT Mask for PC02 */ +#define PIN_PC03 67 /**< \brief Pin Number for PC03 */ +#define PORT_PC03 (_UL_(1) << 3) /**< \brief PORT Mask for PC03 */ +#define PIN_PC04 68 /**< \brief Pin Number for PC04 */ +#define PORT_PC04 (_UL_(1) << 4) /**< \brief PORT Mask for PC04 */ +#define PIN_PC05 69 /**< \brief Pin Number for PC05 */ +#define PORT_PC05 (_UL_(1) << 5) /**< \brief PORT Mask for PC05 */ +#define PIN_PC06 70 /**< \brief Pin Number for PC06 */ +#define PORT_PC06 (_UL_(1) << 6) /**< \brief PORT Mask for PC06 */ +#define PIN_PC07 71 /**< \brief Pin Number for PC07 */ +#define PORT_PC07 (_UL_(1) << 7) /**< \brief PORT Mask for PC07 */ +#define PIN_PC10 74 /**< \brief Pin Number for PC10 */ +#define PORT_PC10 (_UL_(1) << 10) /**< \brief PORT Mask for PC10 */ +#define PIN_PC11 75 /**< \brief Pin Number for PC11 */ +#define PORT_PC11 (_UL_(1) << 11) /**< \brief PORT Mask for PC11 */ +#define PIN_PC12 76 /**< \brief Pin Number for PC12 */ +#define PORT_PC12 (_UL_(1) << 12) /**< \brief PORT Mask for PC12 */ +#define PIN_PC13 77 /**< \brief Pin Number for PC13 */ +#define PORT_PC13 (_UL_(1) << 13) /**< \brief PORT Mask for PC13 */ +#define PIN_PC14 78 /**< \brief Pin Number for PC14 */ +#define PORT_PC14 (_UL_(1) << 14) /**< \brief PORT Mask for PC14 */ +#define PIN_PC15 79 /**< \brief Pin Number for PC15 */ +#define PORT_PC15 (_UL_(1) << 15) /**< \brief PORT Mask for PC15 */ +#define PIN_PC16 80 /**< \brief Pin Number for PC16 */ +#define PORT_PC16 (_UL_(1) << 16) /**< \brief PORT Mask for PC16 */ +#define PIN_PC17 81 /**< \brief Pin Number for PC17 */ +#define PORT_PC17 (_UL_(1) << 17) /**< \brief PORT Mask for PC17 */ +#define PIN_PC18 82 /**< \brief Pin Number for PC18 */ +#define PORT_PC18 (_UL_(1) << 18) /**< \brief PORT Mask for PC18 */ +#define PIN_PC19 83 /**< \brief Pin Number for PC19 */ +#define PORT_PC19 (_UL_(1) << 19) /**< \brief PORT Mask for PC19 */ +#define PIN_PC20 84 /**< \brief Pin Number for PC20 */ +#define PORT_PC20 (_UL_(1) << 20) /**< \brief PORT Mask for PC20 */ +#define PIN_PC21 85 /**< \brief Pin Number for PC21 */ +#define PORT_PC21 (_UL_(1) << 21) /**< \brief PORT Mask for PC21 */ +#define PIN_PC22 86 /**< \brief Pin Number for PC22 */ +#define PORT_PC22 (_UL_(1) << 22) /**< \brief PORT Mask for PC22 */ +#define PIN_PC23 87 /**< \brief Pin Number for PC23 */ +#define PORT_PC23 (_UL_(1) << 23) /**< \brief PORT Mask for PC23 */ +#define PIN_PC24 88 /**< \brief Pin Number for PC24 */ +#define PORT_PC24 (_UL_(1) << 24) /**< \brief PORT Mask for PC24 */ +#define PIN_PC25 89 /**< \brief Pin Number for PC25 */ +#define PORT_PC25 (_UL_(1) << 25) /**< \brief PORT Mask for PC25 */ +#define PIN_PC26 90 /**< \brief Pin Number for PC26 */ +#define PORT_PC26 (_UL_(1) << 26) /**< \brief PORT Mask for PC26 */ +#define PIN_PC27 91 /**< \brief Pin Number for PC27 */ +#define PORT_PC27 (_UL_(1) << 27) /**< \brief PORT Mask for PC27 */ +#define PIN_PC28 92 /**< \brief Pin Number for PC28 */ +#define PORT_PC28 (_UL_(1) << 28) /**< \brief PORT Mask for PC28 */ +#define PIN_PC30 94 /**< \brief Pin Number for PC30 */ +#define PORT_PC30 (_UL_(1) << 30) /**< \brief PORT Mask for PC30 */ +#define PIN_PC31 95 /**< \brief Pin Number for PC31 */ +#define PORT_PC31 (_UL_(1) << 31) /**< \brief PORT Mask for PC31 */ +#define PIN_PD00 96 /**< \brief Pin Number for PD00 */ +#define PORT_PD00 (_UL_(1) << 0) /**< \brief PORT Mask for PD00 */ +#define PIN_PD01 97 /**< \brief Pin Number for PD01 */ +#define PORT_PD01 (_UL_(1) << 1) /**< \brief PORT Mask for PD01 */ +#define PIN_PD08 104 /**< \brief Pin Number for PD08 */ +#define PORT_PD08 (_UL_(1) << 8) /**< \brief PORT Mask for PD08 */ +#define PIN_PD09 105 /**< \brief Pin Number for PD09 */ +#define PORT_PD09 (_UL_(1) << 9) /**< \brief PORT Mask for PD09 */ +#define PIN_PD10 106 /**< \brief Pin Number for PD10 */ +#define PORT_PD10 (_UL_(1) << 10) /**< \brief PORT Mask for PD10 */ +#define PIN_PD11 107 /**< \brief Pin Number for PD11 */ +#define PORT_PD11 (_UL_(1) << 11) /**< \brief PORT Mask for PD11 */ +#define PIN_PD12 108 /**< \brief Pin Number for PD12 */ +#define PORT_PD12 (_UL_(1) << 12) /**< \brief PORT Mask for PD12 */ +#define PIN_PD20 116 /**< \brief Pin Number for PD20 */ +#define PORT_PD20 (_UL_(1) << 20) /**< \brief PORT Mask for PD20 */ +#define PIN_PD21 117 /**< \brief Pin Number for PD21 */ +#define PORT_PD21 (_UL_(1) << 21) /**< \brief PORT Mask for PD21 */ +/* ========== PORT definition for CM4 peripheral ========== */ +#define PIN_PA30H_CM4_SWCLK _L_(30) /**< \brief CM4 signal: SWCLK on PA30 mux H */ +#define MUX_PA30H_CM4_SWCLK _L_(7) +#define PINMUX_PA30H_CM4_SWCLK ((PIN_PA30H_CM4_SWCLK << 16) | MUX_PA30H_CM4_SWCLK) +#define PORT_PA30H_CM4_SWCLK (_UL_(1) << 30) +#define PIN_PC27M_CM4_SWO _L_(91) /**< \brief CM4 signal: SWO on PC27 mux M */ +#define MUX_PC27M_CM4_SWO _L_(12) +#define PINMUX_PC27M_CM4_SWO ((PIN_PC27M_CM4_SWO << 16) | MUX_PC27M_CM4_SWO) +#define PORT_PC27M_CM4_SWO (_UL_(1) << 27) +#define PIN_PB30H_CM4_SWO _L_(62) /**< \brief CM4 signal: SWO on PB30 mux H */ +#define MUX_PB30H_CM4_SWO _L_(7) +#define PINMUX_PB30H_CM4_SWO ((PIN_PB30H_CM4_SWO << 16) | MUX_PB30H_CM4_SWO) +#define PORT_PB30H_CM4_SWO (_UL_(1) << 30) +#define PIN_PC27H_CM4_TRACECLK _L_(91) /**< \brief CM4 signal: TRACECLK on PC27 mux H */ +#define MUX_PC27H_CM4_TRACECLK _L_(7) +#define PINMUX_PC27H_CM4_TRACECLK ((PIN_PC27H_CM4_TRACECLK << 16) | MUX_PC27H_CM4_TRACECLK) +#define PORT_PC27H_CM4_TRACECLK (_UL_(1) << 27) +#define PIN_PC28H_CM4_TRACEDATA0 _L_(92) /**< \brief CM4 signal: TRACEDATA0 on PC28 mux H */ +#define MUX_PC28H_CM4_TRACEDATA0 _L_(7) +#define PINMUX_PC28H_CM4_TRACEDATA0 ((PIN_PC28H_CM4_TRACEDATA0 << 16) | MUX_PC28H_CM4_TRACEDATA0) +#define PORT_PC28H_CM4_TRACEDATA0 (_UL_(1) << 28) +#define PIN_PC26H_CM4_TRACEDATA1 _L_(90) /**< \brief CM4 signal: TRACEDATA1 on PC26 mux H */ +#define MUX_PC26H_CM4_TRACEDATA1 _L_(7) +#define PINMUX_PC26H_CM4_TRACEDATA1 ((PIN_PC26H_CM4_TRACEDATA1 << 16) | MUX_PC26H_CM4_TRACEDATA1) +#define PORT_PC26H_CM4_TRACEDATA1 (_UL_(1) << 26) +#define PIN_PC25H_CM4_TRACEDATA2 _L_(89) /**< \brief CM4 signal: TRACEDATA2 on PC25 mux H */ +#define MUX_PC25H_CM4_TRACEDATA2 _L_(7) +#define PINMUX_PC25H_CM4_TRACEDATA2 ((PIN_PC25H_CM4_TRACEDATA2 << 16) | MUX_PC25H_CM4_TRACEDATA2) +#define PORT_PC25H_CM4_TRACEDATA2 (_UL_(1) << 25) +#define PIN_PC24H_CM4_TRACEDATA3 _L_(88) /**< \brief CM4 signal: TRACEDATA3 on PC24 mux H */ +#define MUX_PC24H_CM4_TRACEDATA3 _L_(7) +#define PINMUX_PC24H_CM4_TRACEDATA3 ((PIN_PC24H_CM4_TRACEDATA3 << 16) | MUX_PC24H_CM4_TRACEDATA3) +#define PORT_PC24H_CM4_TRACEDATA3 (_UL_(1) << 24) +/* ========== PORT definition for ANAREF peripheral ========== */ +#define PIN_PA03B_ANAREF_VREF0 _L_(3) /**< \brief ANAREF signal: VREF0 on PA03 mux B */ +#define MUX_PA03B_ANAREF_VREF0 _L_(1) +#define PINMUX_PA03B_ANAREF_VREF0 ((PIN_PA03B_ANAREF_VREF0 << 16) | MUX_PA03B_ANAREF_VREF0) +#define PORT_PA03B_ANAREF_VREF0 (_UL_(1) << 3) +#define PIN_PA04B_ANAREF_VREF1 _L_(4) /**< \brief ANAREF signal: VREF1 on PA04 mux B */ +#define MUX_PA04B_ANAREF_VREF1 _L_(1) +#define PINMUX_PA04B_ANAREF_VREF1 ((PIN_PA04B_ANAREF_VREF1 << 16) | MUX_PA04B_ANAREF_VREF1) +#define PORT_PA04B_ANAREF_VREF1 (_UL_(1) << 4) +#define PIN_PA06B_ANAREF_VREF2 _L_(6) /**< \brief ANAREF signal: VREF2 on PA06 mux B */ +#define MUX_PA06B_ANAREF_VREF2 _L_(1) +#define PINMUX_PA06B_ANAREF_VREF2 ((PIN_PA06B_ANAREF_VREF2 << 16) | MUX_PA06B_ANAREF_VREF2) +#define PORT_PA06B_ANAREF_VREF2 (_UL_(1) << 6) +/* ========== PORT definition for GCLK peripheral ========== */ +#define PIN_PA30M_GCLK_IO0 _L_(30) /**< \brief GCLK signal: IO0 on PA30 mux M */ +#define MUX_PA30M_GCLK_IO0 _L_(12) +#define PINMUX_PA30M_GCLK_IO0 ((PIN_PA30M_GCLK_IO0 << 16) | MUX_PA30M_GCLK_IO0) +#define PORT_PA30M_GCLK_IO0 (_UL_(1) << 30) +#define PIN_PB14M_GCLK_IO0 _L_(46) /**< \brief GCLK signal: IO0 on PB14 mux M */ +#define MUX_PB14M_GCLK_IO0 _L_(12) +#define PINMUX_PB14M_GCLK_IO0 ((PIN_PB14M_GCLK_IO0 << 16) | MUX_PB14M_GCLK_IO0) +#define PORT_PB14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PA14M_GCLK_IO0 _L_(14) /**< \brief GCLK signal: IO0 on PA14 mux M */ +#define MUX_PA14M_GCLK_IO0 _L_(12) +#define PINMUX_PA14M_GCLK_IO0 ((PIN_PA14M_GCLK_IO0 << 16) | MUX_PA14M_GCLK_IO0) +#define PORT_PA14M_GCLK_IO0 (_UL_(1) << 14) +#define PIN_PB22M_GCLK_IO0 _L_(54) /**< \brief GCLK signal: IO0 on PB22 mux M */ +#define MUX_PB22M_GCLK_IO0 _L_(12) +#define PINMUX_PB22M_GCLK_IO0 ((PIN_PB22M_GCLK_IO0 << 16) | MUX_PB22M_GCLK_IO0) +#define PORT_PB22M_GCLK_IO0 (_UL_(1) << 22) +#define PIN_PB15M_GCLK_IO1 _L_(47) /**< \brief GCLK signal: IO1 on PB15 mux M */ +#define MUX_PB15M_GCLK_IO1 _L_(12) +#define PINMUX_PB15M_GCLK_IO1 ((PIN_PB15M_GCLK_IO1 << 16) | MUX_PB15M_GCLK_IO1) +#define PORT_PB15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PA15M_GCLK_IO1 _L_(15) /**< \brief GCLK signal: IO1 on PA15 mux M */ +#define MUX_PA15M_GCLK_IO1 _L_(12) +#define PINMUX_PA15M_GCLK_IO1 ((PIN_PA15M_GCLK_IO1 << 16) | MUX_PA15M_GCLK_IO1) +#define PORT_PA15M_GCLK_IO1 (_UL_(1) << 15) +#define PIN_PB23M_GCLK_IO1 _L_(55) /**< \brief GCLK signal: IO1 on PB23 mux M */ +#define MUX_PB23M_GCLK_IO1 _L_(12) +#define PINMUX_PB23M_GCLK_IO1 ((PIN_PB23M_GCLK_IO1 << 16) | MUX_PB23M_GCLK_IO1) +#define PORT_PB23M_GCLK_IO1 (_UL_(1) << 23) +#define PIN_PA27M_GCLK_IO1 _L_(27) /**< \brief GCLK signal: IO1 on PA27 mux M */ +#define MUX_PA27M_GCLK_IO1 _L_(12) +#define PINMUX_PA27M_GCLK_IO1 ((PIN_PA27M_GCLK_IO1 << 16) | MUX_PA27M_GCLK_IO1) +#define PORT_PA27M_GCLK_IO1 (_UL_(1) << 27) +#define PIN_PA16M_GCLK_IO2 _L_(16) /**< \brief GCLK signal: IO2 on PA16 mux M */ +#define MUX_PA16M_GCLK_IO2 _L_(12) +#define PINMUX_PA16M_GCLK_IO2 ((PIN_PA16M_GCLK_IO2 << 16) | MUX_PA16M_GCLK_IO2) +#define PORT_PA16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PB16M_GCLK_IO2 _L_(48) /**< \brief GCLK signal: IO2 on PB16 mux M */ +#define MUX_PB16M_GCLK_IO2 _L_(12) +#define PINMUX_PB16M_GCLK_IO2 ((PIN_PB16M_GCLK_IO2 << 16) | MUX_PB16M_GCLK_IO2) +#define PORT_PB16M_GCLK_IO2 (_UL_(1) << 16) +#define PIN_PA17M_GCLK_IO3 _L_(17) /**< \brief GCLK signal: IO3 on PA17 mux M */ +#define MUX_PA17M_GCLK_IO3 _L_(12) +#define PINMUX_PA17M_GCLK_IO3 ((PIN_PA17M_GCLK_IO3 << 16) | MUX_PA17M_GCLK_IO3) +#define PORT_PA17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PB17M_GCLK_IO3 _L_(49) /**< \brief GCLK signal: IO3 on PB17 mux M */ +#define MUX_PB17M_GCLK_IO3 _L_(12) +#define PINMUX_PB17M_GCLK_IO3 ((PIN_PB17M_GCLK_IO3 << 16) | MUX_PB17M_GCLK_IO3) +#define PORT_PB17M_GCLK_IO3 (_UL_(1) << 17) +#define PIN_PA10M_GCLK_IO4 _L_(10) /**< \brief GCLK signal: IO4 on PA10 mux M */ +#define MUX_PA10M_GCLK_IO4 _L_(12) +#define PINMUX_PA10M_GCLK_IO4 ((PIN_PA10M_GCLK_IO4 << 16) | MUX_PA10M_GCLK_IO4) +#define PORT_PA10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB10M_GCLK_IO4 _L_(42) /**< \brief GCLK signal: IO4 on PB10 mux M */ +#define MUX_PB10M_GCLK_IO4 _L_(12) +#define PINMUX_PB10M_GCLK_IO4 ((PIN_PB10M_GCLK_IO4 << 16) | MUX_PB10M_GCLK_IO4) +#define PORT_PB10M_GCLK_IO4 (_UL_(1) << 10) +#define PIN_PB18M_GCLK_IO4 _L_(50) /**< \brief GCLK signal: IO4 on PB18 mux M */ +#define MUX_PB18M_GCLK_IO4 _L_(12) +#define PINMUX_PB18M_GCLK_IO4 ((PIN_PB18M_GCLK_IO4 << 16) | MUX_PB18M_GCLK_IO4) +#define PORT_PB18M_GCLK_IO4 (_UL_(1) << 18) +#define PIN_PA11M_GCLK_IO5 _L_(11) /**< \brief GCLK signal: IO5 on PA11 mux M */ +#define MUX_PA11M_GCLK_IO5 _L_(12) +#define PINMUX_PA11M_GCLK_IO5 ((PIN_PA11M_GCLK_IO5 << 16) | MUX_PA11M_GCLK_IO5) +#define PORT_PA11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB11M_GCLK_IO5 _L_(43) /**< \brief GCLK signal: IO5 on PB11 mux M */ +#define MUX_PB11M_GCLK_IO5 _L_(12) +#define PINMUX_PB11M_GCLK_IO5 ((PIN_PB11M_GCLK_IO5 << 16) | MUX_PB11M_GCLK_IO5) +#define PORT_PB11M_GCLK_IO5 (_UL_(1) << 11) +#define PIN_PB19M_GCLK_IO5 _L_(51) /**< \brief GCLK signal: IO5 on PB19 mux M */ +#define MUX_PB19M_GCLK_IO5 _L_(12) +#define PINMUX_PB19M_GCLK_IO5 ((PIN_PB19M_GCLK_IO5 << 16) | MUX_PB19M_GCLK_IO5) +#define PORT_PB19M_GCLK_IO5 (_UL_(1) << 19) +#define PIN_PB12M_GCLK_IO6 _L_(44) /**< \brief GCLK signal: IO6 on PB12 mux M */ +#define MUX_PB12M_GCLK_IO6 _L_(12) +#define PINMUX_PB12M_GCLK_IO6 ((PIN_PB12M_GCLK_IO6 << 16) | MUX_PB12M_GCLK_IO6) +#define PORT_PB12M_GCLK_IO6 (_UL_(1) << 12) +#define PIN_PB20M_GCLK_IO6 _L_(52) /**< \brief GCLK signal: IO6 on PB20 mux M */ +#define MUX_PB20M_GCLK_IO6 _L_(12) +#define PINMUX_PB20M_GCLK_IO6 ((PIN_PB20M_GCLK_IO6 << 16) | MUX_PB20M_GCLK_IO6) +#define PORT_PB20M_GCLK_IO6 (_UL_(1) << 20) +#define PIN_PB13M_GCLK_IO7 _L_(45) /**< \brief GCLK signal: IO7 on PB13 mux M */ +#define MUX_PB13M_GCLK_IO7 _L_(12) +#define PINMUX_PB13M_GCLK_IO7 ((PIN_PB13M_GCLK_IO7 << 16) | MUX_PB13M_GCLK_IO7) +#define PORT_PB13M_GCLK_IO7 (_UL_(1) << 13) +#define PIN_PB21M_GCLK_IO7 _L_(53) /**< \brief GCLK signal: IO7 on PB21 mux M */ +#define MUX_PB21M_GCLK_IO7 _L_(12) +#define PINMUX_PB21M_GCLK_IO7 ((PIN_PB21M_GCLK_IO7 << 16) | MUX_PB21M_GCLK_IO7) +#define PORT_PB21M_GCLK_IO7 (_UL_(1) << 21) +/* ========== PORT definition for EIC peripheral ========== */ +#define PIN_PA00A_EIC_EXTINT0 _L_(0) /**< \brief EIC signal: EXTINT0 on PA00 mux A */ +#define MUX_PA00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0) +#define PORT_PA00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PA00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA00 External Interrupt Line */ +#define PIN_PA16A_EIC_EXTINT0 _L_(16) /**< \brief EIC signal: EXTINT0 on PA16 mux A */ +#define MUX_PA16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0) +#define PORT_PA16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PA16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PA16 External Interrupt Line */ +#define PIN_PB00A_EIC_EXTINT0 _L_(32) /**< \brief EIC signal: EXTINT0 on PB00 mux A */ +#define MUX_PB00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0) +#define PORT_PB00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PB00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB00 External Interrupt Line */ +#define PIN_PB16A_EIC_EXTINT0 _L_(48) /**< \brief EIC signal: EXTINT0 on PB16 mux A */ +#define MUX_PB16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0) +#define PORT_PB16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PB16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PB16 External Interrupt Line */ +#define PIN_PC00A_EIC_EXTINT0 _L_(64) /**< \brief EIC signal: EXTINT0 on PC00 mux A */ +#define MUX_PC00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC00A_EIC_EXTINT0 ((PIN_PC00A_EIC_EXTINT0 << 16) | MUX_PC00A_EIC_EXTINT0) +#define PORT_PC00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PC00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC00 External Interrupt Line */ +#define PIN_PC16A_EIC_EXTINT0 _L_(80) /**< \brief EIC signal: EXTINT0 on PC16 mux A */ +#define MUX_PC16A_EIC_EXTINT0 _L_(0) +#define PINMUX_PC16A_EIC_EXTINT0 ((PIN_PC16A_EIC_EXTINT0 << 16) | MUX_PC16A_EIC_EXTINT0) +#define PORT_PC16A_EIC_EXTINT0 (_UL_(1) << 16) +#define PIN_PC16A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PC16 External Interrupt Line */ +#define PIN_PD00A_EIC_EXTINT0 _L_(96) /**< \brief EIC signal: EXTINT0 on PD00 mux A */ +#define MUX_PD00A_EIC_EXTINT0 _L_(0) +#define PINMUX_PD00A_EIC_EXTINT0 ((PIN_PD00A_EIC_EXTINT0 << 16) | MUX_PD00A_EIC_EXTINT0) +#define PORT_PD00A_EIC_EXTINT0 (_UL_(1) << 0) +#define PIN_PD00A_EIC_EXTINT_NUM _L_(0) /**< \brief EIC signal: PIN_PD00 External Interrupt Line */ +#define PIN_PA01A_EIC_EXTINT1 _L_(1) /**< \brief EIC signal: EXTINT1 on PA01 mux A */ +#define MUX_PA01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1) +#define PORT_PA01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PA01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA01 External Interrupt Line */ +#define PIN_PA17A_EIC_EXTINT1 _L_(17) /**< \brief EIC signal: EXTINT1 on PA17 mux A */ +#define MUX_PA17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1) +#define PORT_PA17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PA17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PA17 External Interrupt Line */ +#define PIN_PB01A_EIC_EXTINT1 _L_(33) /**< \brief EIC signal: EXTINT1 on PB01 mux A */ +#define MUX_PB01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1) +#define PORT_PB01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PB01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB01 External Interrupt Line */ +#define PIN_PB17A_EIC_EXTINT1 _L_(49) /**< \brief EIC signal: EXTINT1 on PB17 mux A */ +#define MUX_PB17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1) +#define PORT_PB17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PB17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PB17 External Interrupt Line */ +#define PIN_PC01A_EIC_EXTINT1 _L_(65) /**< \brief EIC signal: EXTINT1 on PC01 mux A */ +#define MUX_PC01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC01A_EIC_EXTINT1 ((PIN_PC01A_EIC_EXTINT1 << 16) | MUX_PC01A_EIC_EXTINT1) +#define PORT_PC01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PC01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC01 External Interrupt Line */ +#define PIN_PC17A_EIC_EXTINT1 _L_(81) /**< \brief EIC signal: EXTINT1 on PC17 mux A */ +#define MUX_PC17A_EIC_EXTINT1 _L_(0) +#define PINMUX_PC17A_EIC_EXTINT1 ((PIN_PC17A_EIC_EXTINT1 << 16) | MUX_PC17A_EIC_EXTINT1) +#define PORT_PC17A_EIC_EXTINT1 (_UL_(1) << 17) +#define PIN_PC17A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PC17 External Interrupt Line */ +#define PIN_PD01A_EIC_EXTINT1 _L_(97) /**< \brief EIC signal: EXTINT1 on PD01 mux A */ +#define MUX_PD01A_EIC_EXTINT1 _L_(0) +#define PINMUX_PD01A_EIC_EXTINT1 ((PIN_PD01A_EIC_EXTINT1 << 16) | MUX_PD01A_EIC_EXTINT1) +#define PORT_PD01A_EIC_EXTINT1 (_UL_(1) << 1) +#define PIN_PD01A_EIC_EXTINT_NUM _L_(1) /**< \brief EIC signal: PIN_PD01 External Interrupt Line */ +#define PIN_PA02A_EIC_EXTINT2 _L_(2) /**< \brief EIC signal: EXTINT2 on PA02 mux A */ +#define MUX_PA02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2) +#define PORT_PA02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PA02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA02 External Interrupt Line */ +#define PIN_PA18A_EIC_EXTINT2 _L_(18) /**< \brief EIC signal: EXTINT2 on PA18 mux A */ +#define MUX_PA18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2) +#define PORT_PA18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PA18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PA18 External Interrupt Line */ +#define PIN_PB02A_EIC_EXTINT2 _L_(34) /**< \brief EIC signal: EXTINT2 on PB02 mux A */ +#define MUX_PB02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2) +#define PORT_PB02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PB02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB02 External Interrupt Line */ +#define PIN_PB18A_EIC_EXTINT2 _L_(50) /**< \brief EIC signal: EXTINT2 on PB18 mux A */ +#define MUX_PB18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PB18A_EIC_EXTINT2 ((PIN_PB18A_EIC_EXTINT2 << 16) | MUX_PB18A_EIC_EXTINT2) +#define PORT_PB18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PB18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PB18 External Interrupt Line */ +#define PIN_PC02A_EIC_EXTINT2 _L_(66) /**< \brief EIC signal: EXTINT2 on PC02 mux A */ +#define MUX_PC02A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC02A_EIC_EXTINT2 ((PIN_PC02A_EIC_EXTINT2 << 16) | MUX_PC02A_EIC_EXTINT2) +#define PORT_PC02A_EIC_EXTINT2 (_UL_(1) << 2) +#define PIN_PC02A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC02 External Interrupt Line */ +#define PIN_PC18A_EIC_EXTINT2 _L_(82) /**< \brief EIC signal: EXTINT2 on PC18 mux A */ +#define MUX_PC18A_EIC_EXTINT2 _L_(0) +#define PINMUX_PC18A_EIC_EXTINT2 ((PIN_PC18A_EIC_EXTINT2 << 16) | MUX_PC18A_EIC_EXTINT2) +#define PORT_PC18A_EIC_EXTINT2 (_UL_(1) << 18) +#define PIN_PC18A_EIC_EXTINT_NUM _L_(2) /**< \brief EIC signal: PIN_PC18 External Interrupt Line */ +#define PIN_PA03A_EIC_EXTINT3 _L_(3) /**< \brief EIC signal: EXTINT3 on PA03 mux A */ +#define MUX_PA03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3) +#define PORT_PA03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PA03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA03 External Interrupt Line */ +#define PIN_PA19A_EIC_EXTINT3 _L_(19) /**< \brief EIC signal: EXTINT3 on PA19 mux A */ +#define MUX_PA19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3) +#define PORT_PA19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PA19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PA19 External Interrupt Line */ +#define PIN_PB03A_EIC_EXTINT3 _L_(35) /**< \brief EIC signal: EXTINT3 on PB03 mux A */ +#define MUX_PB03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3) +#define PORT_PB03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PB03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB03 External Interrupt Line */ +#define PIN_PB19A_EIC_EXTINT3 _L_(51) /**< \brief EIC signal: EXTINT3 on PB19 mux A */ +#define MUX_PB19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PB19A_EIC_EXTINT3 ((PIN_PB19A_EIC_EXTINT3 << 16) | MUX_PB19A_EIC_EXTINT3) +#define PORT_PB19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PB19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PB19 External Interrupt Line */ +#define PIN_PC03A_EIC_EXTINT3 _L_(67) /**< \brief EIC signal: EXTINT3 on PC03 mux A */ +#define MUX_PC03A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC03A_EIC_EXTINT3 ((PIN_PC03A_EIC_EXTINT3 << 16) | MUX_PC03A_EIC_EXTINT3) +#define PORT_PC03A_EIC_EXTINT3 (_UL_(1) << 3) +#define PIN_PC03A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC03 External Interrupt Line */ +#define PIN_PC19A_EIC_EXTINT3 _L_(83) /**< \brief EIC signal: EXTINT3 on PC19 mux A */ +#define MUX_PC19A_EIC_EXTINT3 _L_(0) +#define PINMUX_PC19A_EIC_EXTINT3 ((PIN_PC19A_EIC_EXTINT3 << 16) | MUX_PC19A_EIC_EXTINT3) +#define PORT_PC19A_EIC_EXTINT3 (_UL_(1) << 19) +#define PIN_PC19A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PC19 External Interrupt Line */ +#define PIN_PD08A_EIC_EXTINT3 _L_(104) /**< \brief EIC signal: EXTINT3 on PD08 mux A */ +#define MUX_PD08A_EIC_EXTINT3 _L_(0) +#define PINMUX_PD08A_EIC_EXTINT3 ((PIN_PD08A_EIC_EXTINT3 << 16) | MUX_PD08A_EIC_EXTINT3) +#define PORT_PD08A_EIC_EXTINT3 (_UL_(1) << 8) +#define PIN_PD08A_EIC_EXTINT_NUM _L_(3) /**< \brief EIC signal: PIN_PD08 External Interrupt Line */ +#define PIN_PA04A_EIC_EXTINT4 _L_(4) /**< \brief EIC signal: EXTINT4 on PA04 mux A */ +#define MUX_PA04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4) +#define PORT_PA04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PA04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA04 External Interrupt Line */ +#define PIN_PA20A_EIC_EXTINT4 _L_(20) /**< \brief EIC signal: EXTINT4 on PA20 mux A */ +#define MUX_PA20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4) +#define PORT_PA20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PA20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PA20 External Interrupt Line */ +#define PIN_PB04A_EIC_EXTINT4 _L_(36) /**< \brief EIC signal: EXTINT4 on PB04 mux A */ +#define MUX_PB04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4) +#define PORT_PB04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PB04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB04 External Interrupt Line */ +#define PIN_PB20A_EIC_EXTINT4 _L_(52) /**< \brief EIC signal: EXTINT4 on PB20 mux A */ +#define MUX_PB20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PB20A_EIC_EXTINT4 ((PIN_PB20A_EIC_EXTINT4 << 16) | MUX_PB20A_EIC_EXTINT4) +#define PORT_PB20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PB20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PB20 External Interrupt Line */ +#define PIN_PC04A_EIC_EXTINT4 _L_(68) /**< \brief EIC signal: EXTINT4 on PC04 mux A */ +#define MUX_PC04A_EIC_EXTINT4 _L_(0) +#define PINMUX_PC04A_EIC_EXTINT4 ((PIN_PC04A_EIC_EXTINT4 << 16) | MUX_PC04A_EIC_EXTINT4) +#define PORT_PC04A_EIC_EXTINT4 (_UL_(1) << 4) +#define PIN_PC04A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC04 External Interrupt Line */ +#define PIN_PC20A_EIC_EXTINT4 _L_(84) /**< \brief EIC signal: EXTINT4 on PC20 mux A */ +#define MUX_PC20A_EIC_EXTINT4 _L_(0) +#define PINMUX_PC20A_EIC_EXTINT4 ((PIN_PC20A_EIC_EXTINT4 << 16) | MUX_PC20A_EIC_EXTINT4) +#define PORT_PC20A_EIC_EXTINT4 (_UL_(1) << 20) +#define PIN_PC20A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PC20 External Interrupt Line */ +#define PIN_PD09A_EIC_EXTINT4 _L_(105) /**< \brief EIC signal: EXTINT4 on PD09 mux A */ +#define MUX_PD09A_EIC_EXTINT4 _L_(0) +#define PINMUX_PD09A_EIC_EXTINT4 ((PIN_PD09A_EIC_EXTINT4 << 16) | MUX_PD09A_EIC_EXTINT4) +#define PORT_PD09A_EIC_EXTINT4 (_UL_(1) << 9) +#define PIN_PD09A_EIC_EXTINT_NUM _L_(4) /**< \brief EIC signal: PIN_PD09 External Interrupt Line */ +#define PIN_PA05A_EIC_EXTINT5 _L_(5) /**< \brief EIC signal: EXTINT5 on PA05 mux A */ +#define MUX_PA05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5) +#define PORT_PA05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PA05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA05 External Interrupt Line */ +#define PIN_PA21A_EIC_EXTINT5 _L_(21) /**< \brief EIC signal: EXTINT5 on PA21 mux A */ +#define MUX_PA21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5) +#define PORT_PA21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PA21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PA21 External Interrupt Line */ +#define PIN_PB05A_EIC_EXTINT5 _L_(37) /**< \brief EIC signal: EXTINT5 on PB05 mux A */ +#define MUX_PB05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5) +#define PORT_PB05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PB05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB05 External Interrupt Line */ +#define PIN_PB21A_EIC_EXTINT5 _L_(53) /**< \brief EIC signal: EXTINT5 on PB21 mux A */ +#define MUX_PB21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PB21A_EIC_EXTINT5 ((PIN_PB21A_EIC_EXTINT5 << 16) | MUX_PB21A_EIC_EXTINT5) +#define PORT_PB21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PB21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PB21 External Interrupt Line */ +#define PIN_PC05A_EIC_EXTINT5 _L_(69) /**< \brief EIC signal: EXTINT5 on PC05 mux A */ +#define MUX_PC05A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC05A_EIC_EXTINT5 ((PIN_PC05A_EIC_EXTINT5 << 16) | MUX_PC05A_EIC_EXTINT5) +#define PORT_PC05A_EIC_EXTINT5 (_UL_(1) << 5) +#define PIN_PC05A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC05 External Interrupt Line */ +#define PIN_PC21A_EIC_EXTINT5 _L_(85) /**< \brief EIC signal: EXTINT5 on PC21 mux A */ +#define MUX_PC21A_EIC_EXTINT5 _L_(0) +#define PINMUX_PC21A_EIC_EXTINT5 ((PIN_PC21A_EIC_EXTINT5 << 16) | MUX_PC21A_EIC_EXTINT5) +#define PORT_PC21A_EIC_EXTINT5 (_UL_(1) << 21) +#define PIN_PC21A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PC21 External Interrupt Line */ +#define PIN_PD10A_EIC_EXTINT5 _L_(106) /**< \brief EIC signal: EXTINT5 on PD10 mux A */ +#define MUX_PD10A_EIC_EXTINT5 _L_(0) +#define PINMUX_PD10A_EIC_EXTINT5 ((PIN_PD10A_EIC_EXTINT5 << 16) | MUX_PD10A_EIC_EXTINT5) +#define PORT_PD10A_EIC_EXTINT5 (_UL_(1) << 10) +#define PIN_PD10A_EIC_EXTINT_NUM _L_(5) /**< \brief EIC signal: PIN_PD10 External Interrupt Line */ +#define PIN_PA06A_EIC_EXTINT6 _L_(6) /**< \brief EIC signal: EXTINT6 on PA06 mux A */ +#define MUX_PA06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6) +#define PORT_PA06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PA06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA06 External Interrupt Line */ +#define PIN_PA22A_EIC_EXTINT6 _L_(22) /**< \brief EIC signal: EXTINT6 on PA22 mux A */ +#define MUX_PA22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6) +#define PORT_PA22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PA22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PA22 External Interrupt Line */ +#define PIN_PB06A_EIC_EXTINT6 _L_(38) /**< \brief EIC signal: EXTINT6 on PB06 mux A */ +#define MUX_PB06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6) +#define PORT_PB06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PB06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB06 External Interrupt Line */ +#define PIN_PB22A_EIC_EXTINT6 _L_(54) /**< \brief EIC signal: EXTINT6 on PB22 mux A */ +#define MUX_PB22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6) +#define PORT_PB22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PB22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PB22 External Interrupt Line */ +#define PIN_PC06A_EIC_EXTINT6 _L_(70) /**< \brief EIC signal: EXTINT6 on PC06 mux A */ +#define MUX_PC06A_EIC_EXTINT6 _L_(0) +#define PINMUX_PC06A_EIC_EXTINT6 ((PIN_PC06A_EIC_EXTINT6 << 16) | MUX_PC06A_EIC_EXTINT6) +#define PORT_PC06A_EIC_EXTINT6 (_UL_(1) << 6) +#define PIN_PC06A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC06 External Interrupt Line */ +#define PIN_PC22A_EIC_EXTINT6 _L_(86) /**< \brief EIC signal: EXTINT6 on PC22 mux A */ +#define MUX_PC22A_EIC_EXTINT6 _L_(0) +#define PINMUX_PC22A_EIC_EXTINT6 ((PIN_PC22A_EIC_EXTINT6 << 16) | MUX_PC22A_EIC_EXTINT6) +#define PORT_PC22A_EIC_EXTINT6 (_UL_(1) << 22) +#define PIN_PC22A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PC22 External Interrupt Line */ +#define PIN_PD11A_EIC_EXTINT6 _L_(107) /**< \brief EIC signal: EXTINT6 on PD11 mux A */ +#define MUX_PD11A_EIC_EXTINT6 _L_(0) +#define PINMUX_PD11A_EIC_EXTINT6 ((PIN_PD11A_EIC_EXTINT6 << 16) | MUX_PD11A_EIC_EXTINT6) +#define PORT_PD11A_EIC_EXTINT6 (_UL_(1) << 11) +#define PIN_PD11A_EIC_EXTINT_NUM _L_(6) /**< \brief EIC signal: PIN_PD11 External Interrupt Line */ +#define PIN_PA07A_EIC_EXTINT7 _L_(7) /**< \brief EIC signal: EXTINT7 on PA07 mux A */ +#define MUX_PA07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7) +#define PORT_PA07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PA07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA07 External Interrupt Line */ +#define PIN_PA23A_EIC_EXTINT7 _L_(23) /**< \brief EIC signal: EXTINT7 on PA23 mux A */ +#define MUX_PA23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7) +#define PORT_PA23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PA23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PA23 External Interrupt Line */ +#define PIN_PB07A_EIC_EXTINT7 _L_(39) /**< \brief EIC signal: EXTINT7 on PB07 mux A */ +#define MUX_PB07A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7) +#define PORT_PB07A_EIC_EXTINT7 (_UL_(1) << 7) +#define PIN_PB07A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB07 External Interrupt Line */ +#define PIN_PB23A_EIC_EXTINT7 _L_(55) /**< \brief EIC signal: EXTINT7 on PB23 mux A */ +#define MUX_PB23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7) +#define PORT_PB23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PB23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PB23 External Interrupt Line */ +#define PIN_PC23A_EIC_EXTINT7 _L_(87) /**< \brief EIC signal: EXTINT7 on PC23 mux A */ +#define MUX_PC23A_EIC_EXTINT7 _L_(0) +#define PINMUX_PC23A_EIC_EXTINT7 ((PIN_PC23A_EIC_EXTINT7 << 16) | MUX_PC23A_EIC_EXTINT7) +#define PORT_PC23A_EIC_EXTINT7 (_UL_(1) << 23) +#define PIN_PC23A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PC23 External Interrupt Line */ +#define PIN_PD12A_EIC_EXTINT7 _L_(108) /**< \brief EIC signal: EXTINT7 on PD12 mux A */ +#define MUX_PD12A_EIC_EXTINT7 _L_(0) +#define PINMUX_PD12A_EIC_EXTINT7 ((PIN_PD12A_EIC_EXTINT7 << 16) | MUX_PD12A_EIC_EXTINT7) +#define PORT_PD12A_EIC_EXTINT7 (_UL_(1) << 12) +#define PIN_PD12A_EIC_EXTINT_NUM _L_(7) /**< \brief EIC signal: PIN_PD12 External Interrupt Line */ +#define PIN_PA24A_EIC_EXTINT8 _L_(24) /**< \brief EIC signal: EXTINT8 on PA24 mux A */ +#define MUX_PA24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PA24A_EIC_EXTINT8 ((PIN_PA24A_EIC_EXTINT8 << 16) | MUX_PA24A_EIC_EXTINT8) +#define PORT_PA24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PA24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PA24 External Interrupt Line */ +#define PIN_PB08A_EIC_EXTINT8 _L_(40) /**< \brief EIC signal: EXTINT8 on PB08 mux A */ +#define MUX_PB08A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8) +#define PORT_PB08A_EIC_EXTINT8 (_UL_(1) << 8) +#define PIN_PB08A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB08 External Interrupt Line */ +#define PIN_PB24A_EIC_EXTINT8 _L_(56) /**< \brief EIC signal: EXTINT8 on PB24 mux A */ +#define MUX_PB24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PB24A_EIC_EXTINT8 ((PIN_PB24A_EIC_EXTINT8 << 16) | MUX_PB24A_EIC_EXTINT8) +#define PORT_PB24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PB24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PB24 External Interrupt Line */ +#define PIN_PC24A_EIC_EXTINT8 _L_(88) /**< \brief EIC signal: EXTINT8 on PC24 mux A */ +#define MUX_PC24A_EIC_EXTINT8 _L_(0) +#define PINMUX_PC24A_EIC_EXTINT8 ((PIN_PC24A_EIC_EXTINT8 << 16) | MUX_PC24A_EIC_EXTINT8) +#define PORT_PC24A_EIC_EXTINT8 (_UL_(1) << 24) +#define PIN_PC24A_EIC_EXTINT_NUM _L_(8) /**< \brief EIC signal: PIN_PC24 External Interrupt Line */ +#define PIN_PA09A_EIC_EXTINT9 _L_(9) /**< \brief EIC signal: EXTINT9 on PA09 mux A */ +#define MUX_PA09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9) +#define PORT_PA09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PA09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA09 External Interrupt Line */ +#define PIN_PA25A_EIC_EXTINT9 _L_(25) /**< \brief EIC signal: EXTINT9 on PA25 mux A */ +#define MUX_PA25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PA25A_EIC_EXTINT9 ((PIN_PA25A_EIC_EXTINT9 << 16) | MUX_PA25A_EIC_EXTINT9) +#define PORT_PA25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PA25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PA25 External Interrupt Line */ +#define PIN_PB09A_EIC_EXTINT9 _L_(41) /**< \brief EIC signal: EXTINT9 on PB09 mux A */ +#define MUX_PB09A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9) +#define PORT_PB09A_EIC_EXTINT9 (_UL_(1) << 9) +#define PIN_PB09A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB09 External Interrupt Line */ +#define PIN_PB25A_EIC_EXTINT9 _L_(57) /**< \brief EIC signal: EXTINT9 on PB25 mux A */ +#define MUX_PB25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PB25A_EIC_EXTINT9 ((PIN_PB25A_EIC_EXTINT9 << 16) | MUX_PB25A_EIC_EXTINT9) +#define PORT_PB25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PB25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PB25 External Interrupt Line */ +#define PIN_PC07A_EIC_EXTINT9 _L_(71) /**< \brief EIC signal: EXTINT9 on PC07 mux A */ +#define MUX_PC07A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC07A_EIC_EXTINT9 ((PIN_PC07A_EIC_EXTINT9 << 16) | MUX_PC07A_EIC_EXTINT9) +#define PORT_PC07A_EIC_EXTINT9 (_UL_(1) << 7) +#define PIN_PC07A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC07 External Interrupt Line */ +#define PIN_PC25A_EIC_EXTINT9 _L_(89) /**< \brief EIC signal: EXTINT9 on PC25 mux A */ +#define MUX_PC25A_EIC_EXTINT9 _L_(0) +#define PINMUX_PC25A_EIC_EXTINT9 ((PIN_PC25A_EIC_EXTINT9 << 16) | MUX_PC25A_EIC_EXTINT9) +#define PORT_PC25A_EIC_EXTINT9 (_UL_(1) << 25) +#define PIN_PC25A_EIC_EXTINT_NUM _L_(9) /**< \brief EIC signal: PIN_PC25 External Interrupt Line */ +#define PIN_PA10A_EIC_EXTINT10 _L_(10) /**< \brief EIC signal: EXTINT10 on PA10 mux A */ +#define MUX_PA10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10) +#define PORT_PA10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PA10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PA10 External Interrupt Line */ +#define PIN_PB10A_EIC_EXTINT10 _L_(42) /**< \brief EIC signal: EXTINT10 on PB10 mux A */ +#define MUX_PB10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10) +#define PORT_PB10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PB10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PB10 External Interrupt Line */ +#define PIN_PC10A_EIC_EXTINT10 _L_(74) /**< \brief EIC signal: EXTINT10 on PC10 mux A */ +#define MUX_PC10A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC10A_EIC_EXTINT10 ((PIN_PC10A_EIC_EXTINT10 << 16) | MUX_PC10A_EIC_EXTINT10) +#define PORT_PC10A_EIC_EXTINT10 (_UL_(1) << 10) +#define PIN_PC10A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC10 External Interrupt Line */ +#define PIN_PC26A_EIC_EXTINT10 _L_(90) /**< \brief EIC signal: EXTINT10 on PC26 mux A */ +#define MUX_PC26A_EIC_EXTINT10 _L_(0) +#define PINMUX_PC26A_EIC_EXTINT10 ((PIN_PC26A_EIC_EXTINT10 << 16) | MUX_PC26A_EIC_EXTINT10) +#define PORT_PC26A_EIC_EXTINT10 (_UL_(1) << 26) +#define PIN_PC26A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PC26 External Interrupt Line */ +#define PIN_PD20A_EIC_EXTINT10 _L_(116) /**< \brief EIC signal: EXTINT10 on PD20 mux A */ +#define MUX_PD20A_EIC_EXTINT10 _L_(0) +#define PINMUX_PD20A_EIC_EXTINT10 ((PIN_PD20A_EIC_EXTINT10 << 16) | MUX_PD20A_EIC_EXTINT10) +#define PORT_PD20A_EIC_EXTINT10 (_UL_(1) << 20) +#define PIN_PD20A_EIC_EXTINT_NUM _L_(10) /**< \brief EIC signal: PIN_PD20 External Interrupt Line */ +#define PIN_PA11A_EIC_EXTINT11 _L_(11) /**< \brief EIC signal: EXTINT11 on PA11 mux A */ +#define MUX_PA11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11) +#define PORT_PA11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PA11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA11 External Interrupt Line */ +#define PIN_PA27A_EIC_EXTINT11 _L_(27) /**< \brief EIC signal: EXTINT11 on PA27 mux A */ +#define MUX_PA27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PA27A_EIC_EXTINT11 ((PIN_PA27A_EIC_EXTINT11 << 16) | MUX_PA27A_EIC_EXTINT11) +#define PORT_PA27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PA27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PA27 External Interrupt Line */ +#define PIN_PB11A_EIC_EXTINT11 _L_(43) /**< \brief EIC signal: EXTINT11 on PB11 mux A */ +#define MUX_PB11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11) +#define PORT_PB11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PB11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PB11 External Interrupt Line */ +#define PIN_PC11A_EIC_EXTINT11 _L_(75) /**< \brief EIC signal: EXTINT11 on PC11 mux A */ +#define MUX_PC11A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC11A_EIC_EXTINT11 ((PIN_PC11A_EIC_EXTINT11 << 16) | MUX_PC11A_EIC_EXTINT11) +#define PORT_PC11A_EIC_EXTINT11 (_UL_(1) << 11) +#define PIN_PC11A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC11 External Interrupt Line */ +#define PIN_PC27A_EIC_EXTINT11 _L_(91) /**< \brief EIC signal: EXTINT11 on PC27 mux A */ +#define MUX_PC27A_EIC_EXTINT11 _L_(0) +#define PINMUX_PC27A_EIC_EXTINT11 ((PIN_PC27A_EIC_EXTINT11 << 16) | MUX_PC27A_EIC_EXTINT11) +#define PORT_PC27A_EIC_EXTINT11 (_UL_(1) << 27) +#define PIN_PC27A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PC27 External Interrupt Line */ +#define PIN_PD21A_EIC_EXTINT11 _L_(117) /**< \brief EIC signal: EXTINT11 on PD21 mux A */ +#define MUX_PD21A_EIC_EXTINT11 _L_(0) +#define PINMUX_PD21A_EIC_EXTINT11 ((PIN_PD21A_EIC_EXTINT11 << 16) | MUX_PD21A_EIC_EXTINT11) +#define PORT_PD21A_EIC_EXTINT11 (_UL_(1) << 21) +#define PIN_PD21A_EIC_EXTINT_NUM _L_(11) /**< \brief EIC signal: PIN_PD21 External Interrupt Line */ +#define PIN_PA12A_EIC_EXTINT12 _L_(12) /**< \brief EIC signal: EXTINT12 on PA12 mux A */ +#define MUX_PA12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12) +#define PORT_PA12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PA12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PA12 External Interrupt Line */ +#define PIN_PB12A_EIC_EXTINT12 _L_(44) /**< \brief EIC signal: EXTINT12 on PB12 mux A */ +#define MUX_PB12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12) +#define PORT_PB12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PB12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB12 External Interrupt Line */ +#define PIN_PB26A_EIC_EXTINT12 _L_(58) /**< \brief EIC signal: EXTINT12 on PB26 mux A */ +#define MUX_PB26A_EIC_EXTINT12 _L_(0) +#define PINMUX_PB26A_EIC_EXTINT12 ((PIN_PB26A_EIC_EXTINT12 << 16) | MUX_PB26A_EIC_EXTINT12) +#define PORT_PB26A_EIC_EXTINT12 (_UL_(1) << 26) +#define PIN_PB26A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PB26 External Interrupt Line */ +#define PIN_PC12A_EIC_EXTINT12 _L_(76) /**< \brief EIC signal: EXTINT12 on PC12 mux A */ +#define MUX_PC12A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC12A_EIC_EXTINT12 ((PIN_PC12A_EIC_EXTINT12 << 16) | MUX_PC12A_EIC_EXTINT12) +#define PORT_PC12A_EIC_EXTINT12 (_UL_(1) << 12) +#define PIN_PC12A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC12 External Interrupt Line */ +#define PIN_PC28A_EIC_EXTINT12 _L_(92) /**< \brief EIC signal: EXTINT12 on PC28 mux A */ +#define MUX_PC28A_EIC_EXTINT12 _L_(0) +#define PINMUX_PC28A_EIC_EXTINT12 ((PIN_PC28A_EIC_EXTINT12 << 16) | MUX_PC28A_EIC_EXTINT12) +#define PORT_PC28A_EIC_EXTINT12 (_UL_(1) << 28) +#define PIN_PC28A_EIC_EXTINT_NUM _L_(12) /**< \brief EIC signal: PIN_PC28 External Interrupt Line */ +#define PIN_PA13A_EIC_EXTINT13 _L_(13) /**< \brief EIC signal: EXTINT13 on PA13 mux A */ +#define MUX_PA13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13) +#define PORT_PA13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PA13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PA13 External Interrupt Line */ +#define PIN_PB13A_EIC_EXTINT13 _L_(45) /**< \brief EIC signal: EXTINT13 on PB13 mux A */ +#define MUX_PB13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13) +#define PORT_PB13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PB13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB13 External Interrupt Line */ +#define PIN_PB27A_EIC_EXTINT13 _L_(59) /**< \brief EIC signal: EXTINT13 on PB27 mux A */ +#define MUX_PB27A_EIC_EXTINT13 _L_(0) +#define PINMUX_PB27A_EIC_EXTINT13 ((PIN_PB27A_EIC_EXTINT13 << 16) | MUX_PB27A_EIC_EXTINT13) +#define PORT_PB27A_EIC_EXTINT13 (_UL_(1) << 27) +#define PIN_PB27A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PB27 External Interrupt Line */ +#define PIN_PC13A_EIC_EXTINT13 _L_(77) /**< \brief EIC signal: EXTINT13 on PC13 mux A */ +#define MUX_PC13A_EIC_EXTINT13 _L_(0) +#define PINMUX_PC13A_EIC_EXTINT13 ((PIN_PC13A_EIC_EXTINT13 << 16) | MUX_PC13A_EIC_EXTINT13) +#define PORT_PC13A_EIC_EXTINT13 (_UL_(1) << 13) +#define PIN_PC13A_EIC_EXTINT_NUM _L_(13) /**< \brief EIC signal: PIN_PC13 External Interrupt Line */ +#define PIN_PA30A_EIC_EXTINT14 _L_(30) /**< \brief EIC signal: EXTINT14 on PA30 mux A */ +#define MUX_PA30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA30A_EIC_EXTINT14 ((PIN_PA30A_EIC_EXTINT14 << 16) | MUX_PA30A_EIC_EXTINT14) +#define PORT_PA30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PA30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA30 External Interrupt Line */ +#define PIN_PB14A_EIC_EXTINT14 _L_(46) /**< \brief EIC signal: EXTINT14 on PB14 mux A */ +#define MUX_PB14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14) +#define PORT_PB14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PB14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB14 External Interrupt Line */ +#define PIN_PB28A_EIC_EXTINT14 _L_(60) /**< \brief EIC signal: EXTINT14 on PB28 mux A */ +#define MUX_PB28A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB28A_EIC_EXTINT14 ((PIN_PB28A_EIC_EXTINT14 << 16) | MUX_PB28A_EIC_EXTINT14) +#define PORT_PB28A_EIC_EXTINT14 (_UL_(1) << 28) +#define PIN_PB28A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB28 External Interrupt Line */ +#define PIN_PB30A_EIC_EXTINT14 _L_(62) /**< \brief EIC signal: EXTINT14 on PB30 mux A */ +#define MUX_PB30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14) +#define PORT_PB30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PB30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PB30 External Interrupt Line */ +#define PIN_PC14A_EIC_EXTINT14 _L_(78) /**< \brief EIC signal: EXTINT14 on PC14 mux A */ +#define MUX_PC14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PC14A_EIC_EXTINT14 ((PIN_PC14A_EIC_EXTINT14 << 16) | MUX_PC14A_EIC_EXTINT14) +#define PORT_PC14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PC14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC14 External Interrupt Line */ +#define PIN_PC30A_EIC_EXTINT14 _L_(94) /**< \brief EIC signal: EXTINT14 on PC30 mux A */ +#define MUX_PC30A_EIC_EXTINT14 _L_(0) +#define PINMUX_PC30A_EIC_EXTINT14 ((PIN_PC30A_EIC_EXTINT14 << 16) | MUX_PC30A_EIC_EXTINT14) +#define PORT_PC30A_EIC_EXTINT14 (_UL_(1) << 30) +#define PIN_PC30A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PC30 External Interrupt Line */ +#define PIN_PA14A_EIC_EXTINT14 _L_(14) /**< \brief EIC signal: EXTINT14 on PA14 mux A */ +#define MUX_PA14A_EIC_EXTINT14 _L_(0) +#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14) +#define PORT_PA14A_EIC_EXTINT14 (_UL_(1) << 14) +#define PIN_PA14A_EIC_EXTINT_NUM _L_(14) /**< \brief EIC signal: PIN_PA14 External Interrupt Line */ +#define PIN_PA15A_EIC_EXTINT15 _L_(15) /**< \brief EIC signal: EXTINT15 on PA15 mux A */ +#define MUX_PA15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15) +#define PORT_PA15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PA15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA15 External Interrupt Line */ +#define PIN_PA31A_EIC_EXTINT15 _L_(31) /**< \brief EIC signal: EXTINT15 on PA31 mux A */ +#define MUX_PA31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PA31A_EIC_EXTINT15 ((PIN_PA31A_EIC_EXTINT15 << 16) | MUX_PA31A_EIC_EXTINT15) +#define PORT_PA31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PA31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PA31 External Interrupt Line */ +#define PIN_PB15A_EIC_EXTINT15 _L_(47) /**< \brief EIC signal: EXTINT15 on PB15 mux A */ +#define MUX_PB15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15) +#define PORT_PB15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PB15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB15 External Interrupt Line */ +#define PIN_PB29A_EIC_EXTINT15 _L_(61) /**< \brief EIC signal: EXTINT15 on PB29 mux A */ +#define MUX_PB29A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB29A_EIC_EXTINT15 ((PIN_PB29A_EIC_EXTINT15 << 16) | MUX_PB29A_EIC_EXTINT15) +#define PORT_PB29A_EIC_EXTINT15 (_UL_(1) << 29) +#define PIN_PB29A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB29 External Interrupt Line */ +#define PIN_PB31A_EIC_EXTINT15 _L_(63) /**< \brief EIC signal: EXTINT15 on PB31 mux A */ +#define MUX_PB31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15) +#define PORT_PB31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PB31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PB31 External Interrupt Line */ +#define PIN_PC15A_EIC_EXTINT15 _L_(79) /**< \brief EIC signal: EXTINT15 on PC15 mux A */ +#define MUX_PC15A_EIC_EXTINT15 _L_(0) +#define PINMUX_PC15A_EIC_EXTINT15 ((PIN_PC15A_EIC_EXTINT15 << 16) | MUX_PC15A_EIC_EXTINT15) +#define PORT_PC15A_EIC_EXTINT15 (_UL_(1) << 15) +#define PIN_PC15A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC15 External Interrupt Line */ +#define PIN_PC31A_EIC_EXTINT15 _L_(95) /**< \brief EIC signal: EXTINT15 on PC31 mux A */ +#define MUX_PC31A_EIC_EXTINT15 _L_(0) +#define PINMUX_PC31A_EIC_EXTINT15 ((PIN_PC31A_EIC_EXTINT15 << 16) | MUX_PC31A_EIC_EXTINT15) +#define PORT_PC31A_EIC_EXTINT15 (_UL_(1) << 31) +#define PIN_PC31A_EIC_EXTINT_NUM _L_(15) /**< \brief EIC signal: PIN_PC31 External Interrupt Line */ +#define PIN_PA08A_EIC_NMI _L_(8) /**< \brief EIC signal: NMI on PA08 mux A */ +#define MUX_PA08A_EIC_NMI _L_(0) +#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI) +#define PORT_PA08A_EIC_NMI (_UL_(1) << 8) +/* ========== PORT definition for SERCOM0 peripheral ========== */ +#define PIN_PA04D_SERCOM0_PAD0 _L_(4) /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */ +#define MUX_PA04D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0) +#define PORT_PA04D_SERCOM0_PAD0 (_UL_(1) << 4) +#define PIN_PC17D_SERCOM0_PAD0 _L_(81) /**< \brief SERCOM0 signal: PAD0 on PC17 mux D */ +#define MUX_PC17D_SERCOM0_PAD0 _L_(3) +#define PINMUX_PC17D_SERCOM0_PAD0 ((PIN_PC17D_SERCOM0_PAD0 << 16) | MUX_PC17D_SERCOM0_PAD0) +#define PORT_PC17D_SERCOM0_PAD0 (_UL_(1) << 17) +#define PIN_PA08C_SERCOM0_PAD0 _L_(8) /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */ +#define MUX_PA08C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0) +#define PORT_PA08C_SERCOM0_PAD0 (_UL_(1) << 8) +#define PIN_PB24C_SERCOM0_PAD0 _L_(56) /**< \brief SERCOM0 signal: PAD0 on PB24 mux C */ +#define MUX_PB24C_SERCOM0_PAD0 _L_(2) +#define PINMUX_PB24C_SERCOM0_PAD0 ((PIN_PB24C_SERCOM0_PAD0 << 16) | MUX_PB24C_SERCOM0_PAD0) +#define PORT_PB24C_SERCOM0_PAD0 (_UL_(1) << 24) +#define PIN_PA05D_SERCOM0_PAD1 _L_(5) /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */ +#define MUX_PA05D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1) +#define PORT_PA05D_SERCOM0_PAD1 (_UL_(1) << 5) +#define PIN_PC16D_SERCOM0_PAD1 _L_(80) /**< \brief SERCOM0 signal: PAD1 on PC16 mux D */ +#define MUX_PC16D_SERCOM0_PAD1 _L_(3) +#define PINMUX_PC16D_SERCOM0_PAD1 ((PIN_PC16D_SERCOM0_PAD1 << 16) | MUX_PC16D_SERCOM0_PAD1) +#define PORT_PC16D_SERCOM0_PAD1 (_UL_(1) << 16) +#define PIN_PA09C_SERCOM0_PAD1 _L_(9) /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */ +#define MUX_PA09C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1) +#define PORT_PA09C_SERCOM0_PAD1 (_UL_(1) << 9) +#define PIN_PB25C_SERCOM0_PAD1 _L_(57) /**< \brief SERCOM0 signal: PAD1 on PB25 mux C */ +#define MUX_PB25C_SERCOM0_PAD1 _L_(2) +#define PINMUX_PB25C_SERCOM0_PAD1 ((PIN_PB25C_SERCOM0_PAD1 << 16) | MUX_PB25C_SERCOM0_PAD1) +#define PORT_PB25C_SERCOM0_PAD1 (_UL_(1) << 25) +#define PIN_PA06D_SERCOM0_PAD2 _L_(6) /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */ +#define MUX_PA06D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2) +#define PORT_PA06D_SERCOM0_PAD2 (_UL_(1) << 6) +#define PIN_PC18D_SERCOM0_PAD2 _L_(82) /**< \brief SERCOM0 signal: PAD2 on PC18 mux D */ +#define MUX_PC18D_SERCOM0_PAD2 _L_(3) +#define PINMUX_PC18D_SERCOM0_PAD2 ((PIN_PC18D_SERCOM0_PAD2 << 16) | MUX_PC18D_SERCOM0_PAD2) +#define PORT_PC18D_SERCOM0_PAD2 (_UL_(1) << 18) +#define PIN_PA10C_SERCOM0_PAD2 _L_(10) /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */ +#define MUX_PA10C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2) +#define PORT_PA10C_SERCOM0_PAD2 (_UL_(1) << 10) +#define PIN_PC24C_SERCOM0_PAD2 _L_(88) /**< \brief SERCOM0 signal: PAD2 on PC24 mux C */ +#define MUX_PC24C_SERCOM0_PAD2 _L_(2) +#define PINMUX_PC24C_SERCOM0_PAD2 ((PIN_PC24C_SERCOM0_PAD2 << 16) | MUX_PC24C_SERCOM0_PAD2) +#define PORT_PC24C_SERCOM0_PAD2 (_UL_(1) << 24) +#define PIN_PA07D_SERCOM0_PAD3 _L_(7) /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */ +#define MUX_PA07D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3) +#define PORT_PA07D_SERCOM0_PAD3 (_UL_(1) << 7) +#define PIN_PC19D_SERCOM0_PAD3 _L_(83) /**< \brief SERCOM0 signal: PAD3 on PC19 mux D */ +#define MUX_PC19D_SERCOM0_PAD3 _L_(3) +#define PINMUX_PC19D_SERCOM0_PAD3 ((PIN_PC19D_SERCOM0_PAD3 << 16) | MUX_PC19D_SERCOM0_PAD3) +#define PORT_PC19D_SERCOM0_PAD3 (_UL_(1) << 19) +#define PIN_PA11C_SERCOM0_PAD3 _L_(11) /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */ +#define MUX_PA11C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3) +#define PORT_PA11C_SERCOM0_PAD3 (_UL_(1) << 11) +#define PIN_PC25C_SERCOM0_PAD3 _L_(89) /**< \brief SERCOM0 signal: PAD3 on PC25 mux C */ +#define MUX_PC25C_SERCOM0_PAD3 _L_(2) +#define PINMUX_PC25C_SERCOM0_PAD3 ((PIN_PC25C_SERCOM0_PAD3 << 16) | MUX_PC25C_SERCOM0_PAD3) +#define PORT_PC25C_SERCOM0_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for SERCOM1 peripheral ========== */ +#define PIN_PA00D_SERCOM1_PAD0 _L_(0) /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */ +#define MUX_PA00D_SERCOM1_PAD0 _L_(3) +#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0) +#define PORT_PA00D_SERCOM1_PAD0 (_UL_(1) << 0) +#define PIN_PA16C_SERCOM1_PAD0 _L_(16) /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */ +#define MUX_PA16C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0) +#define PORT_PA16C_SERCOM1_PAD0 (_UL_(1) << 16) +#define PIN_PC22C_SERCOM1_PAD0 _L_(86) /**< \brief SERCOM1 signal: PAD0 on PC22 mux C */ +#define MUX_PC22C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PC22C_SERCOM1_PAD0 ((PIN_PC22C_SERCOM1_PAD0 << 16) | MUX_PC22C_SERCOM1_PAD0) +#define PORT_PC22C_SERCOM1_PAD0 (_UL_(1) << 22) +#define PIN_PC27C_SERCOM1_PAD0 _L_(91) /**< \brief SERCOM1 signal: PAD0 on PC27 mux C */ +#define MUX_PC27C_SERCOM1_PAD0 _L_(2) +#define PINMUX_PC27C_SERCOM1_PAD0 ((PIN_PC27C_SERCOM1_PAD0 << 16) | MUX_PC27C_SERCOM1_PAD0) +#define PORT_PC27C_SERCOM1_PAD0 (_UL_(1) << 27) +#define PIN_PA01D_SERCOM1_PAD1 _L_(1) /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */ +#define MUX_PA01D_SERCOM1_PAD1 _L_(3) +#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1) +#define PORT_PA01D_SERCOM1_PAD1 (_UL_(1) << 1) +#define PIN_PA17C_SERCOM1_PAD1 _L_(17) /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */ +#define MUX_PA17C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1) +#define PORT_PA17C_SERCOM1_PAD1 (_UL_(1) << 17) +#define PIN_PC23C_SERCOM1_PAD1 _L_(87) /**< \brief SERCOM1 signal: PAD1 on PC23 mux C */ +#define MUX_PC23C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PC23C_SERCOM1_PAD1 ((PIN_PC23C_SERCOM1_PAD1 << 16) | MUX_PC23C_SERCOM1_PAD1) +#define PORT_PC23C_SERCOM1_PAD1 (_UL_(1) << 23) +#define PIN_PC28C_SERCOM1_PAD1 _L_(92) /**< \brief SERCOM1 signal: PAD1 on PC28 mux C */ +#define MUX_PC28C_SERCOM1_PAD1 _L_(2) +#define PINMUX_PC28C_SERCOM1_PAD1 ((PIN_PC28C_SERCOM1_PAD1 << 16) | MUX_PC28C_SERCOM1_PAD1) +#define PORT_PC28C_SERCOM1_PAD1 (_UL_(1) << 28) +#define PIN_PA30D_SERCOM1_PAD2 _L_(30) /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */ +#define MUX_PA30D_SERCOM1_PAD2 _L_(3) +#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2) +#define PORT_PA30D_SERCOM1_PAD2 (_UL_(1) << 30) +#define PIN_PA18C_SERCOM1_PAD2 _L_(18) /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */ +#define MUX_PA18C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2) +#define PORT_PA18C_SERCOM1_PAD2 (_UL_(1) << 18) +#define PIN_PB22C_SERCOM1_PAD2 _L_(54) /**< \brief SERCOM1 signal: PAD2 on PB22 mux C */ +#define MUX_PB22C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PB22C_SERCOM1_PAD2 ((PIN_PB22C_SERCOM1_PAD2 << 16) | MUX_PB22C_SERCOM1_PAD2) +#define PORT_PB22C_SERCOM1_PAD2 (_UL_(1) << 22) +#define PIN_PD20C_SERCOM1_PAD2 _L_(116) /**< \brief SERCOM1 signal: PAD2 on PD20 mux C */ +#define MUX_PD20C_SERCOM1_PAD2 _L_(2) +#define PINMUX_PD20C_SERCOM1_PAD2 ((PIN_PD20C_SERCOM1_PAD2 << 16) | MUX_PD20C_SERCOM1_PAD2) +#define PORT_PD20C_SERCOM1_PAD2 (_UL_(1) << 20) +#define PIN_PA31D_SERCOM1_PAD3 _L_(31) /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */ +#define MUX_PA31D_SERCOM1_PAD3 _L_(3) +#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3) +#define PORT_PA31D_SERCOM1_PAD3 (_UL_(1) << 31) +#define PIN_PA19C_SERCOM1_PAD3 _L_(19) /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */ +#define MUX_PA19C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3) +#define PORT_PA19C_SERCOM1_PAD3 (_UL_(1) << 19) +#define PIN_PB23C_SERCOM1_PAD3 _L_(55) /**< \brief SERCOM1 signal: PAD3 on PB23 mux C */ +#define MUX_PB23C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PB23C_SERCOM1_PAD3 ((PIN_PB23C_SERCOM1_PAD3 << 16) | MUX_PB23C_SERCOM1_PAD3) +#define PORT_PB23C_SERCOM1_PAD3 (_UL_(1) << 23) +#define PIN_PD21C_SERCOM1_PAD3 _L_(117) /**< \brief SERCOM1 signal: PAD3 on PD21 mux C */ +#define MUX_PD21C_SERCOM1_PAD3 _L_(2) +#define PINMUX_PD21C_SERCOM1_PAD3 ((PIN_PD21C_SERCOM1_PAD3 << 16) | MUX_PD21C_SERCOM1_PAD3) +#define PORT_PD21C_SERCOM1_PAD3 (_UL_(1) << 21) +/* ========== PORT definition for TC0 peripheral ========== */ +#define PIN_PA04E_TC0_WO0 _L_(4) /**< \brief TC0 signal: WO0 on PA04 mux E */ +#define MUX_PA04E_TC0_WO0 _L_(4) +#define PINMUX_PA04E_TC0_WO0 ((PIN_PA04E_TC0_WO0 << 16) | MUX_PA04E_TC0_WO0) +#define PORT_PA04E_TC0_WO0 (_UL_(1) << 4) +#define PIN_PA08E_TC0_WO0 _L_(8) /**< \brief TC0 signal: WO0 on PA08 mux E */ +#define MUX_PA08E_TC0_WO0 _L_(4) +#define PINMUX_PA08E_TC0_WO0 ((PIN_PA08E_TC0_WO0 << 16) | MUX_PA08E_TC0_WO0) +#define PORT_PA08E_TC0_WO0 (_UL_(1) << 8) +#define PIN_PB30E_TC0_WO0 _L_(62) /**< \brief TC0 signal: WO0 on PB30 mux E */ +#define MUX_PB30E_TC0_WO0 _L_(4) +#define PINMUX_PB30E_TC0_WO0 ((PIN_PB30E_TC0_WO0 << 16) | MUX_PB30E_TC0_WO0) +#define PORT_PB30E_TC0_WO0 (_UL_(1) << 30) +#define PIN_PA05E_TC0_WO1 _L_(5) /**< \brief TC0 signal: WO1 on PA05 mux E */ +#define MUX_PA05E_TC0_WO1 _L_(4) +#define PINMUX_PA05E_TC0_WO1 ((PIN_PA05E_TC0_WO1 << 16) | MUX_PA05E_TC0_WO1) +#define PORT_PA05E_TC0_WO1 (_UL_(1) << 5) +#define PIN_PA09E_TC0_WO1 _L_(9) /**< \brief TC0 signal: WO1 on PA09 mux E */ +#define MUX_PA09E_TC0_WO1 _L_(4) +#define PINMUX_PA09E_TC0_WO1 ((PIN_PA09E_TC0_WO1 << 16) | MUX_PA09E_TC0_WO1) +#define PORT_PA09E_TC0_WO1 (_UL_(1) << 9) +#define PIN_PB31E_TC0_WO1 _L_(63) /**< \brief TC0 signal: WO1 on PB31 mux E */ +#define MUX_PB31E_TC0_WO1 _L_(4) +#define PINMUX_PB31E_TC0_WO1 ((PIN_PB31E_TC0_WO1 << 16) | MUX_PB31E_TC0_WO1) +#define PORT_PB31E_TC0_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC1 peripheral ========== */ +#define PIN_PA06E_TC1_WO0 _L_(6) /**< \brief TC1 signal: WO0 on PA06 mux E */ +#define MUX_PA06E_TC1_WO0 _L_(4) +#define PINMUX_PA06E_TC1_WO0 ((PIN_PA06E_TC1_WO0 << 16) | MUX_PA06E_TC1_WO0) +#define PORT_PA06E_TC1_WO0 (_UL_(1) << 6) +#define PIN_PA10E_TC1_WO0 _L_(10) /**< \brief TC1 signal: WO0 on PA10 mux E */ +#define MUX_PA10E_TC1_WO0 _L_(4) +#define PINMUX_PA10E_TC1_WO0 ((PIN_PA10E_TC1_WO0 << 16) | MUX_PA10E_TC1_WO0) +#define PORT_PA10E_TC1_WO0 (_UL_(1) << 10) +#define PIN_PA07E_TC1_WO1 _L_(7) /**< \brief TC1 signal: WO1 on PA07 mux E */ +#define MUX_PA07E_TC1_WO1 _L_(4) +#define PINMUX_PA07E_TC1_WO1 ((PIN_PA07E_TC1_WO1 << 16) | MUX_PA07E_TC1_WO1) +#define PORT_PA07E_TC1_WO1 (_UL_(1) << 7) +#define PIN_PA11E_TC1_WO1 _L_(11) /**< \brief TC1 signal: WO1 on PA11 mux E */ +#define MUX_PA11E_TC1_WO1 _L_(4) +#define PINMUX_PA11E_TC1_WO1 ((PIN_PA11E_TC1_WO1 << 16) | MUX_PA11E_TC1_WO1) +#define PORT_PA11E_TC1_WO1 (_UL_(1) << 11) +/* ========== PORT definition for USB peripheral ========== */ +#define PIN_PA24H_USB_DM _L_(24) /**< \brief USB signal: DM on PA24 mux H */ +#define MUX_PA24H_USB_DM _L_(7) +#define PINMUX_PA24H_USB_DM ((PIN_PA24H_USB_DM << 16) | MUX_PA24H_USB_DM) +#define PORT_PA24H_USB_DM (_UL_(1) << 24) +#define PIN_PA25H_USB_DP _L_(25) /**< \brief USB signal: DP on PA25 mux H */ +#define MUX_PA25H_USB_DP _L_(7) +#define PINMUX_PA25H_USB_DP ((PIN_PA25H_USB_DP << 16) | MUX_PA25H_USB_DP) +#define PORT_PA25H_USB_DP (_UL_(1) << 25) +#define PIN_PA23H_USB_SOF_1KHZ _L_(23) /**< \brief USB signal: SOF_1KHZ on PA23 mux H */ +#define MUX_PA23H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PA23H_USB_SOF_1KHZ ((PIN_PA23H_USB_SOF_1KHZ << 16) | MUX_PA23H_USB_SOF_1KHZ) +#define PORT_PA23H_USB_SOF_1KHZ (_UL_(1) << 23) +#define PIN_PB22H_USB_SOF_1KHZ _L_(54) /**< \brief USB signal: SOF_1KHZ on PB22 mux H */ +#define MUX_PB22H_USB_SOF_1KHZ _L_(7) +#define PINMUX_PB22H_USB_SOF_1KHZ ((PIN_PB22H_USB_SOF_1KHZ << 16) | MUX_PB22H_USB_SOF_1KHZ) +#define PORT_PB22H_USB_SOF_1KHZ (_UL_(1) << 22) +/* ========== PORT definition for SERCOM2 peripheral ========== */ +#define PIN_PA09D_SERCOM2_PAD0 _L_(9) /**< \brief SERCOM2 signal: PAD0 on PA09 mux D */ +#define MUX_PA09D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PA09D_SERCOM2_PAD0 ((PIN_PA09D_SERCOM2_PAD0 << 16) | MUX_PA09D_SERCOM2_PAD0) +#define PORT_PA09D_SERCOM2_PAD0 (_UL_(1) << 9) +#define PIN_PB25D_SERCOM2_PAD0 _L_(57) /**< \brief SERCOM2 signal: PAD0 on PB25 mux D */ +#define MUX_PB25D_SERCOM2_PAD0 _L_(3) +#define PINMUX_PB25D_SERCOM2_PAD0 ((PIN_PB25D_SERCOM2_PAD0 << 16) | MUX_PB25D_SERCOM2_PAD0) +#define PORT_PB25D_SERCOM2_PAD0 (_UL_(1) << 25) +#define PIN_PA12C_SERCOM2_PAD0 _L_(12) /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */ +#define MUX_PA12C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0) +#define PORT_PA12C_SERCOM2_PAD0 (_UL_(1) << 12) +#define PIN_PB26C_SERCOM2_PAD0 _L_(58) /**< \brief SERCOM2 signal: PAD0 on PB26 mux C */ +#define MUX_PB26C_SERCOM2_PAD0 _L_(2) +#define PINMUX_PB26C_SERCOM2_PAD0 ((PIN_PB26C_SERCOM2_PAD0 << 16) | MUX_PB26C_SERCOM2_PAD0) +#define PORT_PB26C_SERCOM2_PAD0 (_UL_(1) << 26) +#define PIN_PA08D_SERCOM2_PAD1 _L_(8) /**< \brief SERCOM2 signal: PAD1 on PA08 mux D */ +#define MUX_PA08D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PA08D_SERCOM2_PAD1 ((PIN_PA08D_SERCOM2_PAD1 << 16) | MUX_PA08D_SERCOM2_PAD1) +#define PORT_PA08D_SERCOM2_PAD1 (_UL_(1) << 8) +#define PIN_PB24D_SERCOM2_PAD1 _L_(56) /**< \brief SERCOM2 signal: PAD1 on PB24 mux D */ +#define MUX_PB24D_SERCOM2_PAD1 _L_(3) +#define PINMUX_PB24D_SERCOM2_PAD1 ((PIN_PB24D_SERCOM2_PAD1 << 16) | MUX_PB24D_SERCOM2_PAD1) +#define PORT_PB24D_SERCOM2_PAD1 (_UL_(1) << 24) +#define PIN_PA13C_SERCOM2_PAD1 _L_(13) /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */ +#define MUX_PA13C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1) +#define PORT_PA13C_SERCOM2_PAD1 (_UL_(1) << 13) +#define PIN_PB27C_SERCOM2_PAD1 _L_(59) /**< \brief SERCOM2 signal: PAD1 on PB27 mux C */ +#define MUX_PB27C_SERCOM2_PAD1 _L_(2) +#define PINMUX_PB27C_SERCOM2_PAD1 ((PIN_PB27C_SERCOM2_PAD1 << 16) | MUX_PB27C_SERCOM2_PAD1) +#define PORT_PB27C_SERCOM2_PAD1 (_UL_(1) << 27) +#define PIN_PA10D_SERCOM2_PAD2 _L_(10) /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */ +#define MUX_PA10D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2) +#define PORT_PA10D_SERCOM2_PAD2 (_UL_(1) << 10) +#define PIN_PC24D_SERCOM2_PAD2 _L_(88) /**< \brief SERCOM2 signal: PAD2 on PC24 mux D */ +#define MUX_PC24D_SERCOM2_PAD2 _L_(3) +#define PINMUX_PC24D_SERCOM2_PAD2 ((PIN_PC24D_SERCOM2_PAD2 << 16) | MUX_PC24D_SERCOM2_PAD2) +#define PORT_PC24D_SERCOM2_PAD2 (_UL_(1) << 24) +#define PIN_PB28C_SERCOM2_PAD2 _L_(60) /**< \brief SERCOM2 signal: PAD2 on PB28 mux C */ +#define MUX_PB28C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PB28C_SERCOM2_PAD2 ((PIN_PB28C_SERCOM2_PAD2 << 16) | MUX_PB28C_SERCOM2_PAD2) +#define PORT_PB28C_SERCOM2_PAD2 (_UL_(1) << 28) +#define PIN_PA14C_SERCOM2_PAD2 _L_(14) /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */ +#define MUX_PA14C_SERCOM2_PAD2 _L_(2) +#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2) +#define PORT_PA14C_SERCOM2_PAD2 (_UL_(1) << 14) +#define PIN_PA11D_SERCOM2_PAD3 _L_(11) /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */ +#define MUX_PA11D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3) +#define PORT_PA11D_SERCOM2_PAD3 (_UL_(1) << 11) +#define PIN_PC25D_SERCOM2_PAD3 _L_(89) /**< \brief SERCOM2 signal: PAD3 on PC25 mux D */ +#define MUX_PC25D_SERCOM2_PAD3 _L_(3) +#define PINMUX_PC25D_SERCOM2_PAD3 ((PIN_PC25D_SERCOM2_PAD3 << 16) | MUX_PC25D_SERCOM2_PAD3) +#define PORT_PC25D_SERCOM2_PAD3 (_UL_(1) << 25) +#define PIN_PB29C_SERCOM2_PAD3 _L_(61) /**< \brief SERCOM2 signal: PAD3 on PB29 mux C */ +#define MUX_PB29C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PB29C_SERCOM2_PAD3 ((PIN_PB29C_SERCOM2_PAD3 << 16) | MUX_PB29C_SERCOM2_PAD3) +#define PORT_PB29C_SERCOM2_PAD3 (_UL_(1) << 29) +#define PIN_PA15C_SERCOM2_PAD3 _L_(15) /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */ +#define MUX_PA15C_SERCOM2_PAD3 _L_(2) +#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3) +#define PORT_PA15C_SERCOM2_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM3 peripheral ========== */ +#define PIN_PA17D_SERCOM3_PAD0 _L_(17) /**< \brief SERCOM3 signal: PAD0 on PA17 mux D */ +#define MUX_PA17D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PA17D_SERCOM3_PAD0 ((PIN_PA17D_SERCOM3_PAD0 << 16) | MUX_PA17D_SERCOM3_PAD0) +#define PORT_PA17D_SERCOM3_PAD0 (_UL_(1) << 17) +#define PIN_PC23D_SERCOM3_PAD0 _L_(87) /**< \brief SERCOM3 signal: PAD0 on PC23 mux D */ +#define MUX_PC23D_SERCOM3_PAD0 _L_(3) +#define PINMUX_PC23D_SERCOM3_PAD0 ((PIN_PC23D_SERCOM3_PAD0 << 16) | MUX_PC23D_SERCOM3_PAD0) +#define PORT_PC23D_SERCOM3_PAD0 (_UL_(1) << 23) +#define PIN_PA22C_SERCOM3_PAD0 _L_(22) /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */ +#define MUX_PA22C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0) +#define PORT_PA22C_SERCOM3_PAD0 (_UL_(1) << 22) +#define PIN_PB20C_SERCOM3_PAD0 _L_(52) /**< \brief SERCOM3 signal: PAD0 on PB20 mux C */ +#define MUX_PB20C_SERCOM3_PAD0 _L_(2) +#define PINMUX_PB20C_SERCOM3_PAD0 ((PIN_PB20C_SERCOM3_PAD0 << 16) | MUX_PB20C_SERCOM3_PAD0) +#define PORT_PB20C_SERCOM3_PAD0 (_UL_(1) << 20) +#define PIN_PA16D_SERCOM3_PAD1 _L_(16) /**< \brief SERCOM3 signal: PAD1 on PA16 mux D */ +#define MUX_PA16D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PA16D_SERCOM3_PAD1 ((PIN_PA16D_SERCOM3_PAD1 << 16) | MUX_PA16D_SERCOM3_PAD1) +#define PORT_PA16D_SERCOM3_PAD1 (_UL_(1) << 16) +#define PIN_PC22D_SERCOM3_PAD1 _L_(86) /**< \brief SERCOM3 signal: PAD1 on PC22 mux D */ +#define MUX_PC22D_SERCOM3_PAD1 _L_(3) +#define PINMUX_PC22D_SERCOM3_PAD1 ((PIN_PC22D_SERCOM3_PAD1 << 16) | MUX_PC22D_SERCOM3_PAD1) +#define PORT_PC22D_SERCOM3_PAD1 (_UL_(1) << 22) +#define PIN_PA23C_SERCOM3_PAD1 _L_(23) /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */ +#define MUX_PA23C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1) +#define PORT_PA23C_SERCOM3_PAD1 (_UL_(1) << 23) +#define PIN_PB21C_SERCOM3_PAD1 _L_(53) /**< \brief SERCOM3 signal: PAD1 on PB21 mux C */ +#define MUX_PB21C_SERCOM3_PAD1 _L_(2) +#define PINMUX_PB21C_SERCOM3_PAD1 ((PIN_PB21C_SERCOM3_PAD1 << 16) | MUX_PB21C_SERCOM3_PAD1) +#define PORT_PB21C_SERCOM3_PAD1 (_UL_(1) << 21) +#define PIN_PA18D_SERCOM3_PAD2 _L_(18) /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */ +#define MUX_PA18D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2) +#define PORT_PA18D_SERCOM3_PAD2 (_UL_(1) << 18) +#define PIN_PA20D_SERCOM3_PAD2 _L_(20) /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */ +#define MUX_PA20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2) +#define PORT_PA20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PD20D_SERCOM3_PAD2 _L_(116) /**< \brief SERCOM3 signal: PAD2 on PD20 mux D */ +#define MUX_PD20D_SERCOM3_PAD2 _L_(3) +#define PINMUX_PD20D_SERCOM3_PAD2 ((PIN_PD20D_SERCOM3_PAD2 << 16) | MUX_PD20D_SERCOM3_PAD2) +#define PORT_PD20D_SERCOM3_PAD2 (_UL_(1) << 20) +#define PIN_PA24C_SERCOM3_PAD2 _L_(24) /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */ +#define MUX_PA24C_SERCOM3_PAD2 _L_(2) +#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2) +#define PORT_PA24C_SERCOM3_PAD2 (_UL_(1) << 24) +#define PIN_PA19D_SERCOM3_PAD3 _L_(19) /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */ +#define MUX_PA19D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3) +#define PORT_PA19D_SERCOM3_PAD3 (_UL_(1) << 19) +#define PIN_PA21D_SERCOM3_PAD3 _L_(21) /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */ +#define MUX_PA21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3) +#define PORT_PA21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PD21D_SERCOM3_PAD3 _L_(117) /**< \brief SERCOM3 signal: PAD3 on PD21 mux D */ +#define MUX_PD21D_SERCOM3_PAD3 _L_(3) +#define PINMUX_PD21D_SERCOM3_PAD3 ((PIN_PD21D_SERCOM3_PAD3 << 16) | MUX_PD21D_SERCOM3_PAD3) +#define PORT_PD21D_SERCOM3_PAD3 (_UL_(1) << 21) +#define PIN_PA25C_SERCOM3_PAD3 _L_(25) /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */ +#define MUX_PA25C_SERCOM3_PAD3 _L_(2) +#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3) +#define PORT_PA25C_SERCOM3_PAD3 (_UL_(1) << 25) +/* ========== PORT definition for TCC0 peripheral ========== */ +#define PIN_PA20G_TCC0_WO0 _L_(20) /**< \brief TCC0 signal: WO0 on PA20 mux G */ +#define MUX_PA20G_TCC0_WO0 _L_(6) +#define PINMUX_PA20G_TCC0_WO0 ((PIN_PA20G_TCC0_WO0 << 16) | MUX_PA20G_TCC0_WO0) +#define PORT_PA20G_TCC0_WO0 (_UL_(1) << 20) +#define PIN_PB12G_TCC0_WO0 _L_(44) /**< \brief TCC0 signal: WO0 on PB12 mux G */ +#define MUX_PB12G_TCC0_WO0 _L_(6) +#define PINMUX_PB12G_TCC0_WO0 ((PIN_PB12G_TCC0_WO0 << 16) | MUX_PB12G_TCC0_WO0) +#define PORT_PB12G_TCC0_WO0 (_UL_(1) << 12) +#define PIN_PA08F_TCC0_WO0 _L_(8) /**< \brief TCC0 signal: WO0 on PA08 mux F */ +#define MUX_PA08F_TCC0_WO0 _L_(5) +#define PINMUX_PA08F_TCC0_WO0 ((PIN_PA08F_TCC0_WO0 << 16) | MUX_PA08F_TCC0_WO0) +#define PORT_PA08F_TCC0_WO0 (_UL_(1) << 8) +#define PIN_PC04F_TCC0_WO0 _L_(68) /**< \brief TCC0 signal: WO0 on PC04 mux F */ +#define MUX_PC04F_TCC0_WO0 _L_(5) +#define PINMUX_PC04F_TCC0_WO0 ((PIN_PC04F_TCC0_WO0 << 16) | MUX_PC04F_TCC0_WO0) +#define PORT_PC04F_TCC0_WO0 (_UL_(1) << 4) +#define PIN_PC10F_TCC0_WO0 _L_(74) /**< \brief TCC0 signal: WO0 on PC10 mux F */ +#define MUX_PC10F_TCC0_WO0 _L_(5) +#define PINMUX_PC10F_TCC0_WO0 ((PIN_PC10F_TCC0_WO0 << 16) | MUX_PC10F_TCC0_WO0) +#define PORT_PC10F_TCC0_WO0 (_UL_(1) << 10) +#define PIN_PC16F_TCC0_WO0 _L_(80) /**< \brief TCC0 signal: WO0 on PC16 mux F */ +#define MUX_PC16F_TCC0_WO0 _L_(5) +#define PINMUX_PC16F_TCC0_WO0 ((PIN_PC16F_TCC0_WO0 << 16) | MUX_PC16F_TCC0_WO0) +#define PORT_PC16F_TCC0_WO0 (_UL_(1) << 16) +#define PIN_PA21G_TCC0_WO1 _L_(21) /**< \brief TCC0 signal: WO1 on PA21 mux G */ +#define MUX_PA21G_TCC0_WO1 _L_(6) +#define PINMUX_PA21G_TCC0_WO1 ((PIN_PA21G_TCC0_WO1 << 16) | MUX_PA21G_TCC0_WO1) +#define PORT_PA21G_TCC0_WO1 (_UL_(1) << 21) +#define PIN_PB13G_TCC0_WO1 _L_(45) /**< \brief TCC0 signal: WO1 on PB13 mux G */ +#define MUX_PB13G_TCC0_WO1 _L_(6) +#define PINMUX_PB13G_TCC0_WO1 ((PIN_PB13G_TCC0_WO1 << 16) | MUX_PB13G_TCC0_WO1) +#define PORT_PB13G_TCC0_WO1 (_UL_(1) << 13) +#define PIN_PA09F_TCC0_WO1 _L_(9) /**< \brief TCC0 signal: WO1 on PA09 mux F */ +#define MUX_PA09F_TCC0_WO1 _L_(5) +#define PINMUX_PA09F_TCC0_WO1 ((PIN_PA09F_TCC0_WO1 << 16) | MUX_PA09F_TCC0_WO1) +#define PORT_PA09F_TCC0_WO1 (_UL_(1) << 9) +#define PIN_PC11F_TCC0_WO1 _L_(75) /**< \brief TCC0 signal: WO1 on PC11 mux F */ +#define MUX_PC11F_TCC0_WO1 _L_(5) +#define PINMUX_PC11F_TCC0_WO1 ((PIN_PC11F_TCC0_WO1 << 16) | MUX_PC11F_TCC0_WO1) +#define PORT_PC11F_TCC0_WO1 (_UL_(1) << 11) +#define PIN_PC17F_TCC0_WO1 _L_(81) /**< \brief TCC0 signal: WO1 on PC17 mux F */ +#define MUX_PC17F_TCC0_WO1 _L_(5) +#define PINMUX_PC17F_TCC0_WO1 ((PIN_PC17F_TCC0_WO1 << 16) | MUX_PC17F_TCC0_WO1) +#define PORT_PC17F_TCC0_WO1 (_UL_(1) << 17) +#define PIN_PD08F_TCC0_WO1 _L_(104) /**< \brief TCC0 signal: WO1 on PD08 mux F */ +#define MUX_PD08F_TCC0_WO1 _L_(5) +#define PINMUX_PD08F_TCC0_WO1 ((PIN_PD08F_TCC0_WO1 << 16) | MUX_PD08F_TCC0_WO1) +#define PORT_PD08F_TCC0_WO1 (_UL_(1) << 8) +#define PIN_PA22G_TCC0_WO2 _L_(22) /**< \brief TCC0 signal: WO2 on PA22 mux G */ +#define MUX_PA22G_TCC0_WO2 _L_(6) +#define PINMUX_PA22G_TCC0_WO2 ((PIN_PA22G_TCC0_WO2 << 16) | MUX_PA22G_TCC0_WO2) +#define PORT_PA22G_TCC0_WO2 (_UL_(1) << 22) +#define PIN_PB14G_TCC0_WO2 _L_(46) /**< \brief TCC0 signal: WO2 on PB14 mux G */ +#define MUX_PB14G_TCC0_WO2 _L_(6) +#define PINMUX_PB14G_TCC0_WO2 ((PIN_PB14G_TCC0_WO2 << 16) | MUX_PB14G_TCC0_WO2) +#define PORT_PB14G_TCC0_WO2 (_UL_(1) << 14) +#define PIN_PA10F_TCC0_WO2 _L_(10) /**< \brief TCC0 signal: WO2 on PA10 mux F */ +#define MUX_PA10F_TCC0_WO2 _L_(5) +#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2) +#define PORT_PA10F_TCC0_WO2 (_UL_(1) << 10) +#define PIN_PC12F_TCC0_WO2 _L_(76) /**< \brief TCC0 signal: WO2 on PC12 mux F */ +#define MUX_PC12F_TCC0_WO2 _L_(5) +#define PINMUX_PC12F_TCC0_WO2 ((PIN_PC12F_TCC0_WO2 << 16) | MUX_PC12F_TCC0_WO2) +#define PORT_PC12F_TCC0_WO2 (_UL_(1) << 12) +#define PIN_PC18F_TCC0_WO2 _L_(82) /**< \brief TCC0 signal: WO2 on PC18 mux F */ +#define MUX_PC18F_TCC0_WO2 _L_(5) +#define PINMUX_PC18F_TCC0_WO2 ((PIN_PC18F_TCC0_WO2 << 16) | MUX_PC18F_TCC0_WO2) +#define PORT_PC18F_TCC0_WO2 (_UL_(1) << 18) +#define PIN_PD09F_TCC0_WO2 _L_(105) /**< \brief TCC0 signal: WO2 on PD09 mux F */ +#define MUX_PD09F_TCC0_WO2 _L_(5) +#define PINMUX_PD09F_TCC0_WO2 ((PIN_PD09F_TCC0_WO2 << 16) | MUX_PD09F_TCC0_WO2) +#define PORT_PD09F_TCC0_WO2 (_UL_(1) << 9) +#define PIN_PA23G_TCC0_WO3 _L_(23) /**< \brief TCC0 signal: WO3 on PA23 mux G */ +#define MUX_PA23G_TCC0_WO3 _L_(6) +#define PINMUX_PA23G_TCC0_WO3 ((PIN_PA23G_TCC0_WO3 << 16) | MUX_PA23G_TCC0_WO3) +#define PORT_PA23G_TCC0_WO3 (_UL_(1) << 23) +#define PIN_PB15G_TCC0_WO3 _L_(47) /**< \brief TCC0 signal: WO3 on PB15 mux G */ +#define MUX_PB15G_TCC0_WO3 _L_(6) +#define PINMUX_PB15G_TCC0_WO3 ((PIN_PB15G_TCC0_WO3 << 16) | MUX_PB15G_TCC0_WO3) +#define PORT_PB15G_TCC0_WO3 (_UL_(1) << 15) +#define PIN_PA11F_TCC0_WO3 _L_(11) /**< \brief TCC0 signal: WO3 on PA11 mux F */ +#define MUX_PA11F_TCC0_WO3 _L_(5) +#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3) +#define PORT_PA11F_TCC0_WO3 (_UL_(1) << 11) +#define PIN_PC13F_TCC0_WO3 _L_(77) /**< \brief TCC0 signal: WO3 on PC13 mux F */ +#define MUX_PC13F_TCC0_WO3 _L_(5) +#define PINMUX_PC13F_TCC0_WO3 ((PIN_PC13F_TCC0_WO3 << 16) | MUX_PC13F_TCC0_WO3) +#define PORT_PC13F_TCC0_WO3 (_UL_(1) << 13) +#define PIN_PC19F_TCC0_WO3 _L_(83) /**< \brief TCC0 signal: WO3 on PC19 mux F */ +#define MUX_PC19F_TCC0_WO3 _L_(5) +#define PINMUX_PC19F_TCC0_WO3 ((PIN_PC19F_TCC0_WO3 << 16) | MUX_PC19F_TCC0_WO3) +#define PORT_PC19F_TCC0_WO3 (_UL_(1) << 19) +#define PIN_PD10F_TCC0_WO3 _L_(106) /**< \brief TCC0 signal: WO3 on PD10 mux F */ +#define MUX_PD10F_TCC0_WO3 _L_(5) +#define PINMUX_PD10F_TCC0_WO3 ((PIN_PD10F_TCC0_WO3 << 16) | MUX_PD10F_TCC0_WO3) +#define PORT_PD10F_TCC0_WO3 (_UL_(1) << 10) +#define PIN_PA16G_TCC0_WO4 _L_(16) /**< \brief TCC0 signal: WO4 on PA16 mux G */ +#define MUX_PA16G_TCC0_WO4 _L_(6) +#define PINMUX_PA16G_TCC0_WO4 ((PIN_PA16G_TCC0_WO4 << 16) | MUX_PA16G_TCC0_WO4) +#define PORT_PA16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB16G_TCC0_WO4 _L_(48) /**< \brief TCC0 signal: WO4 on PB16 mux G */ +#define MUX_PB16G_TCC0_WO4 _L_(6) +#define PINMUX_PB16G_TCC0_WO4 ((PIN_PB16G_TCC0_WO4 << 16) | MUX_PB16G_TCC0_WO4) +#define PORT_PB16G_TCC0_WO4 (_UL_(1) << 16) +#define PIN_PB10F_TCC0_WO4 _L_(42) /**< \brief TCC0 signal: WO4 on PB10 mux F */ +#define MUX_PB10F_TCC0_WO4 _L_(5) +#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4) +#define PORT_PB10F_TCC0_WO4 (_UL_(1) << 10) +#define PIN_PC14F_TCC0_WO4 _L_(78) /**< \brief TCC0 signal: WO4 on PC14 mux F */ +#define MUX_PC14F_TCC0_WO4 _L_(5) +#define PINMUX_PC14F_TCC0_WO4 ((PIN_PC14F_TCC0_WO4 << 16) | MUX_PC14F_TCC0_WO4) +#define PORT_PC14F_TCC0_WO4 (_UL_(1) << 14) +#define PIN_PC20F_TCC0_WO4 _L_(84) /**< \brief TCC0 signal: WO4 on PC20 mux F */ +#define MUX_PC20F_TCC0_WO4 _L_(5) +#define PINMUX_PC20F_TCC0_WO4 ((PIN_PC20F_TCC0_WO4 << 16) | MUX_PC20F_TCC0_WO4) +#define PORT_PC20F_TCC0_WO4 (_UL_(1) << 20) +#define PIN_PD11F_TCC0_WO4 _L_(107) /**< \brief TCC0 signal: WO4 on PD11 mux F */ +#define MUX_PD11F_TCC0_WO4 _L_(5) +#define PINMUX_PD11F_TCC0_WO4 ((PIN_PD11F_TCC0_WO4 << 16) | MUX_PD11F_TCC0_WO4) +#define PORT_PD11F_TCC0_WO4 (_UL_(1) << 11) +#define PIN_PA17G_TCC0_WO5 _L_(17) /**< \brief TCC0 signal: WO5 on PA17 mux G */ +#define MUX_PA17G_TCC0_WO5 _L_(6) +#define PINMUX_PA17G_TCC0_WO5 ((PIN_PA17G_TCC0_WO5 << 16) | MUX_PA17G_TCC0_WO5) +#define PORT_PA17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB17G_TCC0_WO5 _L_(49) /**< \brief TCC0 signal: WO5 on PB17 mux G */ +#define MUX_PB17G_TCC0_WO5 _L_(6) +#define PINMUX_PB17G_TCC0_WO5 ((PIN_PB17G_TCC0_WO5 << 16) | MUX_PB17G_TCC0_WO5) +#define PORT_PB17G_TCC0_WO5 (_UL_(1) << 17) +#define PIN_PB11F_TCC0_WO5 _L_(43) /**< \brief TCC0 signal: WO5 on PB11 mux F */ +#define MUX_PB11F_TCC0_WO5 _L_(5) +#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5) +#define PORT_PB11F_TCC0_WO5 (_UL_(1) << 11) +#define PIN_PC15F_TCC0_WO5 _L_(79) /**< \brief TCC0 signal: WO5 on PC15 mux F */ +#define MUX_PC15F_TCC0_WO5 _L_(5) +#define PINMUX_PC15F_TCC0_WO5 ((PIN_PC15F_TCC0_WO5 << 16) | MUX_PC15F_TCC0_WO5) +#define PORT_PC15F_TCC0_WO5 (_UL_(1) << 15) +#define PIN_PC21F_TCC0_WO5 _L_(85) /**< \brief TCC0 signal: WO5 on PC21 mux F */ +#define MUX_PC21F_TCC0_WO5 _L_(5) +#define PINMUX_PC21F_TCC0_WO5 ((PIN_PC21F_TCC0_WO5 << 16) | MUX_PC21F_TCC0_WO5) +#define PORT_PC21F_TCC0_WO5 (_UL_(1) << 21) +#define PIN_PD12F_TCC0_WO5 _L_(108) /**< \brief TCC0 signal: WO5 on PD12 mux F */ +#define MUX_PD12F_TCC0_WO5 _L_(5) +#define PINMUX_PD12F_TCC0_WO5 ((PIN_PD12F_TCC0_WO5 << 16) | MUX_PD12F_TCC0_WO5) +#define PORT_PD12F_TCC0_WO5 (_UL_(1) << 12) +#define PIN_PA18G_TCC0_WO6 _L_(18) /**< \brief TCC0 signal: WO6 on PA18 mux G */ +#define MUX_PA18G_TCC0_WO6 _L_(6) +#define PINMUX_PA18G_TCC0_WO6 ((PIN_PA18G_TCC0_WO6 << 16) | MUX_PA18G_TCC0_WO6) +#define PORT_PA18G_TCC0_WO6 (_UL_(1) << 18) +#define PIN_PB30G_TCC0_WO6 _L_(62) /**< \brief TCC0 signal: WO6 on PB30 mux G */ +#define MUX_PB30G_TCC0_WO6 _L_(6) +#define PINMUX_PB30G_TCC0_WO6 ((PIN_PB30G_TCC0_WO6 << 16) | MUX_PB30G_TCC0_WO6) +#define PORT_PB30G_TCC0_WO6 (_UL_(1) << 30) +#define PIN_PA12F_TCC0_WO6 _L_(12) /**< \brief TCC0 signal: WO6 on PA12 mux F */ +#define MUX_PA12F_TCC0_WO6 _L_(5) +#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6) +#define PORT_PA12F_TCC0_WO6 (_UL_(1) << 12) +#define PIN_PC22F_TCC0_WO6 _L_(86) /**< \brief TCC0 signal: WO6 on PC22 mux F */ +#define MUX_PC22F_TCC0_WO6 _L_(5) +#define PINMUX_PC22F_TCC0_WO6 ((PIN_PC22F_TCC0_WO6 << 16) | MUX_PC22F_TCC0_WO6) +#define PORT_PC22F_TCC0_WO6 (_UL_(1) << 22) +#define PIN_PA19G_TCC0_WO7 _L_(19) /**< \brief TCC0 signal: WO7 on PA19 mux G */ +#define MUX_PA19G_TCC0_WO7 _L_(6) +#define PINMUX_PA19G_TCC0_WO7 ((PIN_PA19G_TCC0_WO7 << 16) | MUX_PA19G_TCC0_WO7) +#define PORT_PA19G_TCC0_WO7 (_UL_(1) << 19) +#define PIN_PB31G_TCC0_WO7 _L_(63) /**< \brief TCC0 signal: WO7 on PB31 mux G */ +#define MUX_PB31G_TCC0_WO7 _L_(6) +#define PINMUX_PB31G_TCC0_WO7 ((PIN_PB31G_TCC0_WO7 << 16) | MUX_PB31G_TCC0_WO7) +#define PORT_PB31G_TCC0_WO7 (_UL_(1) << 31) +#define PIN_PA13F_TCC0_WO7 _L_(13) /**< \brief TCC0 signal: WO7 on PA13 mux F */ +#define MUX_PA13F_TCC0_WO7 _L_(5) +#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7) +#define PORT_PA13F_TCC0_WO7 (_UL_(1) << 13) +#define PIN_PC23F_TCC0_WO7 _L_(87) /**< \brief TCC0 signal: WO7 on PC23 mux F */ +#define MUX_PC23F_TCC0_WO7 _L_(5) +#define PINMUX_PC23F_TCC0_WO7 ((PIN_PC23F_TCC0_WO7 << 16) | MUX_PC23F_TCC0_WO7) +#define PORT_PC23F_TCC0_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TCC1 peripheral ========== */ +#define PIN_PB10G_TCC1_WO0 _L_(42) /**< \brief TCC1 signal: WO0 on PB10 mux G */ +#define MUX_PB10G_TCC1_WO0 _L_(6) +#define PINMUX_PB10G_TCC1_WO0 ((PIN_PB10G_TCC1_WO0 << 16) | MUX_PB10G_TCC1_WO0) +#define PORT_PB10G_TCC1_WO0 (_UL_(1) << 10) +#define PIN_PC14G_TCC1_WO0 _L_(78) /**< \brief TCC1 signal: WO0 on PC14 mux G */ +#define MUX_PC14G_TCC1_WO0 _L_(6) +#define PINMUX_PC14G_TCC1_WO0 ((PIN_PC14G_TCC1_WO0 << 16) | MUX_PC14G_TCC1_WO0) +#define PORT_PC14G_TCC1_WO0 (_UL_(1) << 14) +#define PIN_PA16F_TCC1_WO0 _L_(16) /**< \brief TCC1 signal: WO0 on PA16 mux F */ +#define MUX_PA16F_TCC1_WO0 _L_(5) +#define PINMUX_PA16F_TCC1_WO0 ((PIN_PA16F_TCC1_WO0 << 16) | MUX_PA16F_TCC1_WO0) +#define PORT_PA16F_TCC1_WO0 (_UL_(1) << 16) +#define PIN_PB18F_TCC1_WO0 _L_(50) /**< \brief TCC1 signal: WO0 on PB18 mux F */ +#define MUX_PB18F_TCC1_WO0 _L_(5) +#define PINMUX_PB18F_TCC1_WO0 ((PIN_PB18F_TCC1_WO0 << 16) | MUX_PB18F_TCC1_WO0) +#define PORT_PB18F_TCC1_WO0 (_UL_(1) << 18) +#define PIN_PD20F_TCC1_WO0 _L_(116) /**< \brief TCC1 signal: WO0 on PD20 mux F */ +#define MUX_PD20F_TCC1_WO0 _L_(5) +#define PINMUX_PD20F_TCC1_WO0 ((PIN_PD20F_TCC1_WO0 << 16) | MUX_PD20F_TCC1_WO0) +#define PORT_PD20F_TCC1_WO0 (_UL_(1) << 20) +#define PIN_PB11G_TCC1_WO1 _L_(43) /**< \brief TCC1 signal: WO1 on PB11 mux G */ +#define MUX_PB11G_TCC1_WO1 _L_(6) +#define PINMUX_PB11G_TCC1_WO1 ((PIN_PB11G_TCC1_WO1 << 16) | MUX_PB11G_TCC1_WO1) +#define PORT_PB11G_TCC1_WO1 (_UL_(1) << 11) +#define PIN_PC15G_TCC1_WO1 _L_(79) /**< \brief TCC1 signal: WO1 on PC15 mux G */ +#define MUX_PC15G_TCC1_WO1 _L_(6) +#define PINMUX_PC15G_TCC1_WO1 ((PIN_PC15G_TCC1_WO1 << 16) | MUX_PC15G_TCC1_WO1) +#define PORT_PC15G_TCC1_WO1 (_UL_(1) << 15) +#define PIN_PA17F_TCC1_WO1 _L_(17) /**< \brief TCC1 signal: WO1 on PA17 mux F */ +#define MUX_PA17F_TCC1_WO1 _L_(5) +#define PINMUX_PA17F_TCC1_WO1 ((PIN_PA17F_TCC1_WO1 << 16) | MUX_PA17F_TCC1_WO1) +#define PORT_PA17F_TCC1_WO1 (_UL_(1) << 17) +#define PIN_PB19F_TCC1_WO1 _L_(51) /**< \brief TCC1 signal: WO1 on PB19 mux F */ +#define MUX_PB19F_TCC1_WO1 _L_(5) +#define PINMUX_PB19F_TCC1_WO1 ((PIN_PB19F_TCC1_WO1 << 16) | MUX_PB19F_TCC1_WO1) +#define PORT_PB19F_TCC1_WO1 (_UL_(1) << 19) +#define PIN_PD21F_TCC1_WO1 _L_(117) /**< \brief TCC1 signal: WO1 on PD21 mux F */ +#define MUX_PD21F_TCC1_WO1 _L_(5) +#define PINMUX_PD21F_TCC1_WO1 ((PIN_PD21F_TCC1_WO1 << 16) | MUX_PD21F_TCC1_WO1) +#define PORT_PD21F_TCC1_WO1 (_UL_(1) << 21) +#define PIN_PA12G_TCC1_WO2 _L_(12) /**< \brief TCC1 signal: WO2 on PA12 mux G */ +#define MUX_PA12G_TCC1_WO2 _L_(6) +#define PINMUX_PA12G_TCC1_WO2 ((PIN_PA12G_TCC1_WO2 << 16) | MUX_PA12G_TCC1_WO2) +#define PORT_PA12G_TCC1_WO2 (_UL_(1) << 12) +#define PIN_PA14G_TCC1_WO2 _L_(14) /**< \brief TCC1 signal: WO2 on PA14 mux G */ +#define MUX_PA14G_TCC1_WO2 _L_(6) +#define PINMUX_PA14G_TCC1_WO2 ((PIN_PA14G_TCC1_WO2 << 16) | MUX_PA14G_TCC1_WO2) +#define PORT_PA14G_TCC1_WO2 (_UL_(1) << 14) +#define PIN_PA18F_TCC1_WO2 _L_(18) /**< \brief TCC1 signal: WO2 on PA18 mux F */ +#define MUX_PA18F_TCC1_WO2 _L_(5) +#define PINMUX_PA18F_TCC1_WO2 ((PIN_PA18F_TCC1_WO2 << 16) | MUX_PA18F_TCC1_WO2) +#define PORT_PA18F_TCC1_WO2 (_UL_(1) << 18) +#define PIN_PB20F_TCC1_WO2 _L_(52) /**< \brief TCC1 signal: WO2 on PB20 mux F */ +#define MUX_PB20F_TCC1_WO2 _L_(5) +#define PINMUX_PB20F_TCC1_WO2 ((PIN_PB20F_TCC1_WO2 << 16) | MUX_PB20F_TCC1_WO2) +#define PORT_PB20F_TCC1_WO2 (_UL_(1) << 20) +#define PIN_PB26F_TCC1_WO2 _L_(58) /**< \brief TCC1 signal: WO2 on PB26 mux F */ +#define MUX_PB26F_TCC1_WO2 _L_(5) +#define PINMUX_PB26F_TCC1_WO2 ((PIN_PB26F_TCC1_WO2 << 16) | MUX_PB26F_TCC1_WO2) +#define PORT_PB26F_TCC1_WO2 (_UL_(1) << 26) +#define PIN_PA13G_TCC1_WO3 _L_(13) /**< \brief TCC1 signal: WO3 on PA13 mux G */ +#define MUX_PA13G_TCC1_WO3 _L_(6) +#define PINMUX_PA13G_TCC1_WO3 ((PIN_PA13G_TCC1_WO3 << 16) | MUX_PA13G_TCC1_WO3) +#define PORT_PA13G_TCC1_WO3 (_UL_(1) << 13) +#define PIN_PA15G_TCC1_WO3 _L_(15) /**< \brief TCC1 signal: WO3 on PA15 mux G */ +#define MUX_PA15G_TCC1_WO3 _L_(6) +#define PINMUX_PA15G_TCC1_WO3 ((PIN_PA15G_TCC1_WO3 << 16) | MUX_PA15G_TCC1_WO3) +#define PORT_PA15G_TCC1_WO3 (_UL_(1) << 15) +#define PIN_PA19F_TCC1_WO3 _L_(19) /**< \brief TCC1 signal: WO3 on PA19 mux F */ +#define MUX_PA19F_TCC1_WO3 _L_(5) +#define PINMUX_PA19F_TCC1_WO3 ((PIN_PA19F_TCC1_WO3 << 16) | MUX_PA19F_TCC1_WO3) +#define PORT_PA19F_TCC1_WO3 (_UL_(1) << 19) +#define PIN_PB21F_TCC1_WO3 _L_(53) /**< \brief TCC1 signal: WO3 on PB21 mux F */ +#define MUX_PB21F_TCC1_WO3 _L_(5) +#define PINMUX_PB21F_TCC1_WO3 ((PIN_PB21F_TCC1_WO3 << 16) | MUX_PB21F_TCC1_WO3) +#define PORT_PB21F_TCC1_WO3 (_UL_(1) << 21) +#define PIN_PB27F_TCC1_WO3 _L_(59) /**< \brief TCC1 signal: WO3 on PB27 mux F */ +#define MUX_PB27F_TCC1_WO3 _L_(5) +#define PINMUX_PB27F_TCC1_WO3 ((PIN_PB27F_TCC1_WO3 << 16) | MUX_PB27F_TCC1_WO3) +#define PORT_PB27F_TCC1_WO3 (_UL_(1) << 27) +#define PIN_PA08G_TCC1_WO4 _L_(8) /**< \brief TCC1 signal: WO4 on PA08 mux G */ +#define MUX_PA08G_TCC1_WO4 _L_(6) +#define PINMUX_PA08G_TCC1_WO4 ((PIN_PA08G_TCC1_WO4 << 16) | MUX_PA08G_TCC1_WO4) +#define PORT_PA08G_TCC1_WO4 (_UL_(1) << 8) +#define PIN_PC10G_TCC1_WO4 _L_(74) /**< \brief TCC1 signal: WO4 on PC10 mux G */ +#define MUX_PC10G_TCC1_WO4 _L_(6) +#define PINMUX_PC10G_TCC1_WO4 ((PIN_PC10G_TCC1_WO4 << 16) | MUX_PC10G_TCC1_WO4) +#define PORT_PC10G_TCC1_WO4 (_UL_(1) << 10) +#define PIN_PA20F_TCC1_WO4 _L_(20) /**< \brief TCC1 signal: WO4 on PA20 mux F */ +#define MUX_PA20F_TCC1_WO4 _L_(5) +#define PINMUX_PA20F_TCC1_WO4 ((PIN_PA20F_TCC1_WO4 << 16) | MUX_PA20F_TCC1_WO4) +#define PORT_PA20F_TCC1_WO4 (_UL_(1) << 20) +#define PIN_PB28F_TCC1_WO4 _L_(60) /**< \brief TCC1 signal: WO4 on PB28 mux F */ +#define MUX_PB28F_TCC1_WO4 _L_(5) +#define PINMUX_PB28F_TCC1_WO4 ((PIN_PB28F_TCC1_WO4 << 16) | MUX_PB28F_TCC1_WO4) +#define PORT_PB28F_TCC1_WO4 (_UL_(1) << 28) +#define PIN_PA09G_TCC1_WO5 _L_(9) /**< \brief TCC1 signal: WO5 on PA09 mux G */ +#define MUX_PA09G_TCC1_WO5 _L_(6) +#define PINMUX_PA09G_TCC1_WO5 ((PIN_PA09G_TCC1_WO5 << 16) | MUX_PA09G_TCC1_WO5) +#define PORT_PA09G_TCC1_WO5 (_UL_(1) << 9) +#define PIN_PC11G_TCC1_WO5 _L_(75) /**< \brief TCC1 signal: WO5 on PC11 mux G */ +#define MUX_PC11G_TCC1_WO5 _L_(6) +#define PINMUX_PC11G_TCC1_WO5 ((PIN_PC11G_TCC1_WO5 << 16) | MUX_PC11G_TCC1_WO5) +#define PORT_PC11G_TCC1_WO5 (_UL_(1) << 11) +#define PIN_PA21F_TCC1_WO5 _L_(21) /**< \brief TCC1 signal: WO5 on PA21 mux F */ +#define MUX_PA21F_TCC1_WO5 _L_(5) +#define PINMUX_PA21F_TCC1_WO5 ((PIN_PA21F_TCC1_WO5 << 16) | MUX_PA21F_TCC1_WO5) +#define PORT_PA21F_TCC1_WO5 (_UL_(1) << 21) +#define PIN_PB29F_TCC1_WO5 _L_(61) /**< \brief TCC1 signal: WO5 on PB29 mux F */ +#define MUX_PB29F_TCC1_WO5 _L_(5) +#define PINMUX_PB29F_TCC1_WO5 ((PIN_PB29F_TCC1_WO5 << 16) | MUX_PB29F_TCC1_WO5) +#define PORT_PB29F_TCC1_WO5 (_UL_(1) << 29) +#define PIN_PA10G_TCC1_WO6 _L_(10) /**< \brief TCC1 signal: WO6 on PA10 mux G */ +#define MUX_PA10G_TCC1_WO6 _L_(6) +#define PINMUX_PA10G_TCC1_WO6 ((PIN_PA10G_TCC1_WO6 << 16) | MUX_PA10G_TCC1_WO6) +#define PORT_PA10G_TCC1_WO6 (_UL_(1) << 10) +#define PIN_PC12G_TCC1_WO6 _L_(76) /**< \brief TCC1 signal: WO6 on PC12 mux G */ +#define MUX_PC12G_TCC1_WO6 _L_(6) +#define PINMUX_PC12G_TCC1_WO6 ((PIN_PC12G_TCC1_WO6 << 16) | MUX_PC12G_TCC1_WO6) +#define PORT_PC12G_TCC1_WO6 (_UL_(1) << 12) +#define PIN_PA22F_TCC1_WO6 _L_(22) /**< \brief TCC1 signal: WO6 on PA22 mux F */ +#define MUX_PA22F_TCC1_WO6 _L_(5) +#define PINMUX_PA22F_TCC1_WO6 ((PIN_PA22F_TCC1_WO6 << 16) | MUX_PA22F_TCC1_WO6) +#define PORT_PA22F_TCC1_WO6 (_UL_(1) << 22) +#define PIN_PA11G_TCC1_WO7 _L_(11) /**< \brief TCC1 signal: WO7 on PA11 mux G */ +#define MUX_PA11G_TCC1_WO7 _L_(6) +#define PINMUX_PA11G_TCC1_WO7 ((PIN_PA11G_TCC1_WO7 << 16) | MUX_PA11G_TCC1_WO7) +#define PORT_PA11G_TCC1_WO7 (_UL_(1) << 11) +#define PIN_PC13G_TCC1_WO7 _L_(77) /**< \brief TCC1 signal: WO7 on PC13 mux G */ +#define MUX_PC13G_TCC1_WO7 _L_(6) +#define PINMUX_PC13G_TCC1_WO7 ((PIN_PC13G_TCC1_WO7 << 16) | MUX_PC13G_TCC1_WO7) +#define PORT_PC13G_TCC1_WO7 (_UL_(1) << 13) +#define PIN_PA23F_TCC1_WO7 _L_(23) /**< \brief TCC1 signal: WO7 on PA23 mux F */ +#define MUX_PA23F_TCC1_WO7 _L_(5) +#define PINMUX_PA23F_TCC1_WO7 ((PIN_PA23F_TCC1_WO7 << 16) | MUX_PA23F_TCC1_WO7) +#define PORT_PA23F_TCC1_WO7 (_UL_(1) << 23) +/* ========== PORT definition for TC2 peripheral ========== */ +#define PIN_PA12E_TC2_WO0 _L_(12) /**< \brief TC2 signal: WO0 on PA12 mux E */ +#define MUX_PA12E_TC2_WO0 _L_(4) +#define PINMUX_PA12E_TC2_WO0 ((PIN_PA12E_TC2_WO0 << 16) | MUX_PA12E_TC2_WO0) +#define PORT_PA12E_TC2_WO0 (_UL_(1) << 12) +#define PIN_PA16E_TC2_WO0 _L_(16) /**< \brief TC2 signal: WO0 on PA16 mux E */ +#define MUX_PA16E_TC2_WO0 _L_(4) +#define PINMUX_PA16E_TC2_WO0 ((PIN_PA16E_TC2_WO0 << 16) | MUX_PA16E_TC2_WO0) +#define PORT_PA16E_TC2_WO0 (_UL_(1) << 16) +#define PIN_PA00E_TC2_WO0 _L_(0) /**< \brief TC2 signal: WO0 on PA00 mux E */ +#define MUX_PA00E_TC2_WO0 _L_(4) +#define PINMUX_PA00E_TC2_WO0 ((PIN_PA00E_TC2_WO0 << 16) | MUX_PA00E_TC2_WO0) +#define PORT_PA00E_TC2_WO0 (_UL_(1) << 0) +#define PIN_PA01E_TC2_WO1 _L_(1) /**< \brief TC2 signal: WO1 on PA01 mux E */ +#define MUX_PA01E_TC2_WO1 _L_(4) +#define PINMUX_PA01E_TC2_WO1 ((PIN_PA01E_TC2_WO1 << 16) | MUX_PA01E_TC2_WO1) +#define PORT_PA01E_TC2_WO1 (_UL_(1) << 1) +#define PIN_PA13E_TC2_WO1 _L_(13) /**< \brief TC2 signal: WO1 on PA13 mux E */ +#define MUX_PA13E_TC2_WO1 _L_(4) +#define PINMUX_PA13E_TC2_WO1 ((PIN_PA13E_TC2_WO1 << 16) | MUX_PA13E_TC2_WO1) +#define PORT_PA13E_TC2_WO1 (_UL_(1) << 13) +#define PIN_PA17E_TC2_WO1 _L_(17) /**< \brief TC2 signal: WO1 on PA17 mux E */ +#define MUX_PA17E_TC2_WO1 _L_(4) +#define PINMUX_PA17E_TC2_WO1 ((PIN_PA17E_TC2_WO1 << 16) | MUX_PA17E_TC2_WO1) +#define PORT_PA17E_TC2_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC3 peripheral ========== */ +#define PIN_PA18E_TC3_WO0 _L_(18) /**< \brief TC3 signal: WO0 on PA18 mux E */ +#define MUX_PA18E_TC3_WO0 _L_(4) +#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0) +#define PORT_PA18E_TC3_WO0 (_UL_(1) << 18) +#define PIN_PA14E_TC3_WO0 _L_(14) /**< \brief TC3 signal: WO0 on PA14 mux E */ +#define MUX_PA14E_TC3_WO0 _L_(4) +#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0) +#define PORT_PA14E_TC3_WO0 (_UL_(1) << 14) +#define PIN_PA15E_TC3_WO1 _L_(15) /**< \brief TC3 signal: WO1 on PA15 mux E */ +#define MUX_PA15E_TC3_WO1 _L_(4) +#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1) +#define PORT_PA15E_TC3_WO1 (_UL_(1) << 15) +#define PIN_PA19E_TC3_WO1 _L_(19) /**< \brief TC3 signal: WO1 on PA19 mux E */ +#define MUX_PA19E_TC3_WO1 _L_(4) +#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1) +#define PORT_PA19E_TC3_WO1 (_UL_(1) << 19) +/* ========== PORT definition for TCC2 peripheral ========== */ +#define PIN_PA14F_TCC2_WO0 _L_(14) /**< \brief TCC2 signal: WO0 on PA14 mux F */ +#define MUX_PA14F_TCC2_WO0 _L_(5) +#define PINMUX_PA14F_TCC2_WO0 ((PIN_PA14F_TCC2_WO0 << 16) | MUX_PA14F_TCC2_WO0) +#define PORT_PA14F_TCC2_WO0 (_UL_(1) << 14) +#define PIN_PA30F_TCC2_WO0 _L_(30) /**< \brief TCC2 signal: WO0 on PA30 mux F */ +#define MUX_PA30F_TCC2_WO0 _L_(5) +#define PINMUX_PA30F_TCC2_WO0 ((PIN_PA30F_TCC2_WO0 << 16) | MUX_PA30F_TCC2_WO0) +#define PORT_PA30F_TCC2_WO0 (_UL_(1) << 30) +#define PIN_PA15F_TCC2_WO1 _L_(15) /**< \brief TCC2 signal: WO1 on PA15 mux F */ +#define MUX_PA15F_TCC2_WO1 _L_(5) +#define PINMUX_PA15F_TCC2_WO1 ((PIN_PA15F_TCC2_WO1 << 16) | MUX_PA15F_TCC2_WO1) +#define PORT_PA15F_TCC2_WO1 (_UL_(1) << 15) +#define PIN_PA31F_TCC2_WO1 _L_(31) /**< \brief TCC2 signal: WO1 on PA31 mux F */ +#define MUX_PA31F_TCC2_WO1 _L_(5) +#define PINMUX_PA31F_TCC2_WO1 ((PIN_PA31F_TCC2_WO1 << 16) | MUX_PA31F_TCC2_WO1) +#define PORT_PA31F_TCC2_WO1 (_UL_(1) << 31) +#define PIN_PA24F_TCC2_WO2 _L_(24) /**< \brief TCC2 signal: WO2 on PA24 mux F */ +#define MUX_PA24F_TCC2_WO2 _L_(5) +#define PINMUX_PA24F_TCC2_WO2 ((PIN_PA24F_TCC2_WO2 << 16) | MUX_PA24F_TCC2_WO2) +#define PORT_PA24F_TCC2_WO2 (_UL_(1) << 24) +#define PIN_PB02F_TCC2_WO2 _L_(34) /**< \brief TCC2 signal: WO2 on PB02 mux F */ +#define MUX_PB02F_TCC2_WO2 _L_(5) +#define PINMUX_PB02F_TCC2_WO2 ((PIN_PB02F_TCC2_WO2 << 16) | MUX_PB02F_TCC2_WO2) +#define PORT_PB02F_TCC2_WO2 (_UL_(1) << 2) +/* ========== PORT definition for TCC3 peripheral ========== */ +#define PIN_PB12F_TCC3_WO0 _L_(44) /**< \brief TCC3 signal: WO0 on PB12 mux F */ +#define MUX_PB12F_TCC3_WO0 _L_(5) +#define PINMUX_PB12F_TCC3_WO0 ((PIN_PB12F_TCC3_WO0 << 16) | MUX_PB12F_TCC3_WO0) +#define PORT_PB12F_TCC3_WO0 (_UL_(1) << 12) +#define PIN_PB16F_TCC3_WO0 _L_(48) /**< \brief TCC3 signal: WO0 on PB16 mux F */ +#define MUX_PB16F_TCC3_WO0 _L_(5) +#define PINMUX_PB16F_TCC3_WO0 ((PIN_PB16F_TCC3_WO0 << 16) | MUX_PB16F_TCC3_WO0) +#define PORT_PB16F_TCC3_WO0 (_UL_(1) << 16) +#define PIN_PB13F_TCC3_WO1 _L_(45) /**< \brief TCC3 signal: WO1 on PB13 mux F */ +#define MUX_PB13F_TCC3_WO1 _L_(5) +#define PINMUX_PB13F_TCC3_WO1 ((PIN_PB13F_TCC3_WO1 << 16) | MUX_PB13F_TCC3_WO1) +#define PORT_PB13F_TCC3_WO1 (_UL_(1) << 13) +#define PIN_PB17F_TCC3_WO1 _L_(49) /**< \brief TCC3 signal: WO1 on PB17 mux F */ +#define MUX_PB17F_TCC3_WO1 _L_(5) +#define PINMUX_PB17F_TCC3_WO1 ((PIN_PB17F_TCC3_WO1 << 16) | MUX_PB17F_TCC3_WO1) +#define PORT_PB17F_TCC3_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC4 peripheral ========== */ +#define PIN_PA22E_TC4_WO0 _L_(22) /**< \brief TC4 signal: WO0 on PA22 mux E */ +#define MUX_PA22E_TC4_WO0 _L_(4) +#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0) +#define PORT_PA22E_TC4_WO0 (_UL_(1) << 22) +#define PIN_PB08E_TC4_WO0 _L_(40) /**< \brief TC4 signal: WO0 on PB08 mux E */ +#define MUX_PB08E_TC4_WO0 _L_(4) +#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0) +#define PORT_PB08E_TC4_WO0 (_UL_(1) << 8) +#define PIN_PB12E_TC4_WO0 _L_(44) /**< \brief TC4 signal: WO0 on PB12 mux E */ +#define MUX_PB12E_TC4_WO0 _L_(4) +#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0) +#define PORT_PB12E_TC4_WO0 (_UL_(1) << 12) +#define PIN_PA23E_TC4_WO1 _L_(23) /**< \brief TC4 signal: WO1 on PA23 mux E */ +#define MUX_PA23E_TC4_WO1 _L_(4) +#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1) +#define PORT_PA23E_TC4_WO1 (_UL_(1) << 23) +#define PIN_PB09E_TC4_WO1 _L_(41) /**< \brief TC4 signal: WO1 on PB09 mux E */ +#define MUX_PB09E_TC4_WO1 _L_(4) +#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1) +#define PORT_PB09E_TC4_WO1 (_UL_(1) << 9) +#define PIN_PB13E_TC4_WO1 _L_(45) /**< \brief TC4 signal: WO1 on PB13 mux E */ +#define MUX_PB13E_TC4_WO1 _L_(4) +#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1) +#define PORT_PB13E_TC4_WO1 (_UL_(1) << 13) +/* ========== PORT definition for TC5 peripheral ========== */ +#define PIN_PA24E_TC5_WO0 _L_(24) /**< \brief TC5 signal: WO0 on PA24 mux E */ +#define MUX_PA24E_TC5_WO0 _L_(4) +#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0) +#define PORT_PA24E_TC5_WO0 (_UL_(1) << 24) +#define PIN_PB10E_TC5_WO0 _L_(42) /**< \brief TC5 signal: WO0 on PB10 mux E */ +#define MUX_PB10E_TC5_WO0 _L_(4) +#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0) +#define PORT_PB10E_TC5_WO0 (_UL_(1) << 10) +#define PIN_PB14E_TC5_WO0 _L_(46) /**< \brief TC5 signal: WO0 on PB14 mux E */ +#define MUX_PB14E_TC5_WO0 _L_(4) +#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0) +#define PORT_PB14E_TC5_WO0 (_UL_(1) << 14) +#define PIN_PA25E_TC5_WO1 _L_(25) /**< \brief TC5 signal: WO1 on PA25 mux E */ +#define MUX_PA25E_TC5_WO1 _L_(4) +#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1) +#define PORT_PA25E_TC5_WO1 (_UL_(1) << 25) +#define PIN_PB11E_TC5_WO1 _L_(43) /**< \brief TC5 signal: WO1 on PB11 mux E */ +#define MUX_PB11E_TC5_WO1 _L_(4) +#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1) +#define PORT_PB11E_TC5_WO1 (_UL_(1) << 11) +#define PIN_PB15E_TC5_WO1 _L_(47) /**< \brief TC5 signal: WO1 on PB15 mux E */ +#define MUX_PB15E_TC5_WO1 _L_(4) +#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1) +#define PORT_PB15E_TC5_WO1 (_UL_(1) << 15) +/* ========== PORT definition for PDEC peripheral ========== */ +#define PIN_PB18G_PDEC_QDI0 _L_(50) /**< \brief PDEC signal: QDI0 on PB18 mux G */ +#define MUX_PB18G_PDEC_QDI0 _L_(6) +#define PINMUX_PB18G_PDEC_QDI0 ((PIN_PB18G_PDEC_QDI0 << 16) | MUX_PB18G_PDEC_QDI0) +#define PORT_PB18G_PDEC_QDI0 (_UL_(1) << 18) +#define PIN_PB23G_PDEC_QDI0 _L_(55) /**< \brief PDEC signal: QDI0 on PB23 mux G */ +#define MUX_PB23G_PDEC_QDI0 _L_(6) +#define PINMUX_PB23G_PDEC_QDI0 ((PIN_PB23G_PDEC_QDI0 << 16) | MUX_PB23G_PDEC_QDI0) +#define PORT_PB23G_PDEC_QDI0 (_UL_(1) << 23) +#define PIN_PC16G_PDEC_QDI0 _L_(80) /**< \brief PDEC signal: QDI0 on PC16 mux G */ +#define MUX_PC16G_PDEC_QDI0 _L_(6) +#define PINMUX_PC16G_PDEC_QDI0 ((PIN_PC16G_PDEC_QDI0 << 16) | MUX_PC16G_PDEC_QDI0) +#define PORT_PC16G_PDEC_QDI0 (_UL_(1) << 16) +#define PIN_PA24G_PDEC_QDI0 _L_(24) /**< \brief PDEC signal: QDI0 on PA24 mux G */ +#define MUX_PA24G_PDEC_QDI0 _L_(6) +#define PINMUX_PA24G_PDEC_QDI0 ((PIN_PA24G_PDEC_QDI0 << 16) | MUX_PA24G_PDEC_QDI0) +#define PORT_PA24G_PDEC_QDI0 (_UL_(1) << 24) +#define PIN_PB19G_PDEC_QDI1 _L_(51) /**< \brief PDEC signal: QDI1 on PB19 mux G */ +#define MUX_PB19G_PDEC_QDI1 _L_(6) +#define PINMUX_PB19G_PDEC_QDI1 ((PIN_PB19G_PDEC_QDI1 << 16) | MUX_PB19G_PDEC_QDI1) +#define PORT_PB19G_PDEC_QDI1 (_UL_(1) << 19) +#define PIN_PB24G_PDEC_QDI1 _L_(56) /**< \brief PDEC signal: QDI1 on PB24 mux G */ +#define MUX_PB24G_PDEC_QDI1 _L_(6) +#define PINMUX_PB24G_PDEC_QDI1 ((PIN_PB24G_PDEC_QDI1 << 16) | MUX_PB24G_PDEC_QDI1) +#define PORT_PB24G_PDEC_QDI1 (_UL_(1) << 24) +#define PIN_PC17G_PDEC_QDI1 _L_(81) /**< \brief PDEC signal: QDI1 on PC17 mux G */ +#define MUX_PC17G_PDEC_QDI1 _L_(6) +#define PINMUX_PC17G_PDEC_QDI1 ((PIN_PC17G_PDEC_QDI1 << 16) | MUX_PC17G_PDEC_QDI1) +#define PORT_PC17G_PDEC_QDI1 (_UL_(1) << 17) +#define PIN_PA25G_PDEC_QDI1 _L_(25) /**< \brief PDEC signal: QDI1 on PA25 mux G */ +#define MUX_PA25G_PDEC_QDI1 _L_(6) +#define PINMUX_PA25G_PDEC_QDI1 ((PIN_PA25G_PDEC_QDI1 << 16) | MUX_PA25G_PDEC_QDI1) +#define PORT_PA25G_PDEC_QDI1 (_UL_(1) << 25) +#define PIN_PB20G_PDEC_QDI2 _L_(52) /**< \brief PDEC signal: QDI2 on PB20 mux G */ +#define MUX_PB20G_PDEC_QDI2 _L_(6) +#define PINMUX_PB20G_PDEC_QDI2 ((PIN_PB20G_PDEC_QDI2 << 16) | MUX_PB20G_PDEC_QDI2) +#define PORT_PB20G_PDEC_QDI2 (_UL_(1) << 20) +#define PIN_PB25G_PDEC_QDI2 _L_(57) /**< \brief PDEC signal: QDI2 on PB25 mux G */ +#define MUX_PB25G_PDEC_QDI2 _L_(6) +#define PINMUX_PB25G_PDEC_QDI2 ((PIN_PB25G_PDEC_QDI2 << 16) | MUX_PB25G_PDEC_QDI2) +#define PORT_PB25G_PDEC_QDI2 (_UL_(1) << 25) +#define PIN_PC18G_PDEC_QDI2 _L_(82) /**< \brief PDEC signal: QDI2 on PC18 mux G */ +#define MUX_PC18G_PDEC_QDI2 _L_(6) +#define PINMUX_PC18G_PDEC_QDI2 ((PIN_PC18G_PDEC_QDI2 << 16) | MUX_PC18G_PDEC_QDI2) +#define PORT_PC18G_PDEC_QDI2 (_UL_(1) << 18) +#define PIN_PB22G_PDEC_QDI2 _L_(54) /**< \brief PDEC signal: QDI2 on PB22 mux G */ +#define MUX_PB22G_PDEC_QDI2 _L_(6) +#define PINMUX_PB22G_PDEC_QDI2 ((PIN_PB22G_PDEC_QDI2 << 16) | MUX_PB22G_PDEC_QDI2) +#define PORT_PB22G_PDEC_QDI2 (_UL_(1) << 22) +/* ========== PORT definition for AC peripheral ========== */ +#define PIN_PA04B_AC_AIN0 _L_(4) /**< \brief AC signal: AIN0 on PA04 mux B */ +#define MUX_PA04B_AC_AIN0 _L_(1) +#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0) +#define PORT_PA04B_AC_AIN0 (_UL_(1) << 4) +#define PIN_PA05B_AC_AIN1 _L_(5) /**< \brief AC signal: AIN1 on PA05 mux B */ +#define MUX_PA05B_AC_AIN1 _L_(1) +#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1) +#define PORT_PA05B_AC_AIN1 (_UL_(1) << 5) +#define PIN_PA06B_AC_AIN2 _L_(6) /**< \brief AC signal: AIN2 on PA06 mux B */ +#define MUX_PA06B_AC_AIN2 _L_(1) +#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2) +#define PORT_PA06B_AC_AIN2 (_UL_(1) << 6) +#define PIN_PA07B_AC_AIN3 _L_(7) /**< \brief AC signal: AIN3 on PA07 mux B */ +#define MUX_PA07B_AC_AIN3 _L_(1) +#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3) +#define PORT_PA07B_AC_AIN3 (_UL_(1) << 7) +#define PIN_PA12M_AC_CMP0 _L_(12) /**< \brief AC signal: CMP0 on PA12 mux M */ +#define MUX_PA12M_AC_CMP0 _L_(12) +#define PINMUX_PA12M_AC_CMP0 ((PIN_PA12M_AC_CMP0 << 16) | MUX_PA12M_AC_CMP0) +#define PORT_PA12M_AC_CMP0 (_UL_(1) << 12) +#define PIN_PA18M_AC_CMP0 _L_(18) /**< \brief AC signal: CMP0 on PA18 mux M */ +#define MUX_PA18M_AC_CMP0 _L_(12) +#define PINMUX_PA18M_AC_CMP0 ((PIN_PA18M_AC_CMP0 << 16) | MUX_PA18M_AC_CMP0) +#define PORT_PA18M_AC_CMP0 (_UL_(1) << 18) +#define PIN_PB24M_AC_CMP0 _L_(56) /**< \brief AC signal: CMP0 on PB24 mux M */ +#define MUX_PB24M_AC_CMP0 _L_(12) +#define PINMUX_PB24M_AC_CMP0 ((PIN_PB24M_AC_CMP0 << 16) | MUX_PB24M_AC_CMP0) +#define PORT_PB24M_AC_CMP0 (_UL_(1) << 24) +#define PIN_PA13M_AC_CMP1 _L_(13) /**< \brief AC signal: CMP1 on PA13 mux M */ +#define MUX_PA13M_AC_CMP1 _L_(12) +#define PINMUX_PA13M_AC_CMP1 ((PIN_PA13M_AC_CMP1 << 16) | MUX_PA13M_AC_CMP1) +#define PORT_PA13M_AC_CMP1 (_UL_(1) << 13) +#define PIN_PA19M_AC_CMP1 _L_(19) /**< \brief AC signal: CMP1 on PA19 mux M */ +#define MUX_PA19M_AC_CMP1 _L_(12) +#define PINMUX_PA19M_AC_CMP1 ((PIN_PA19M_AC_CMP1 << 16) | MUX_PA19M_AC_CMP1) +#define PORT_PA19M_AC_CMP1 (_UL_(1) << 19) +#define PIN_PB25M_AC_CMP1 _L_(57) /**< \brief AC signal: CMP1 on PB25 mux M */ +#define MUX_PB25M_AC_CMP1 _L_(12) +#define PINMUX_PB25M_AC_CMP1 ((PIN_PB25M_AC_CMP1 << 16) | MUX_PB25M_AC_CMP1) +#define PORT_PB25M_AC_CMP1 (_UL_(1) << 25) +/* ========== PORT definition for QSPI peripheral ========== */ +#define PIN_PB11H_QSPI_CS _L_(43) /**< \brief QSPI signal: CS on PB11 mux H */ +#define MUX_PB11H_QSPI_CS _L_(7) +#define PINMUX_PB11H_QSPI_CS ((PIN_PB11H_QSPI_CS << 16) | MUX_PB11H_QSPI_CS) +#define PORT_PB11H_QSPI_CS (_UL_(1) << 11) +#define PIN_PA08H_QSPI_DATA0 _L_(8) /**< \brief QSPI signal: DATA0 on PA08 mux H */ +#define MUX_PA08H_QSPI_DATA0 _L_(7) +#define PINMUX_PA08H_QSPI_DATA0 ((PIN_PA08H_QSPI_DATA0 << 16) | MUX_PA08H_QSPI_DATA0) +#define PORT_PA08H_QSPI_DATA0 (_UL_(1) << 8) +#define PIN_PA09H_QSPI_DATA1 _L_(9) /**< \brief QSPI signal: DATA1 on PA09 mux H */ +#define MUX_PA09H_QSPI_DATA1 _L_(7) +#define PINMUX_PA09H_QSPI_DATA1 ((PIN_PA09H_QSPI_DATA1 << 16) | MUX_PA09H_QSPI_DATA1) +#define PORT_PA09H_QSPI_DATA1 (_UL_(1) << 9) +#define PIN_PA10H_QSPI_DATA2 _L_(10) /**< \brief QSPI signal: DATA2 on PA10 mux H */ +#define MUX_PA10H_QSPI_DATA2 _L_(7) +#define PINMUX_PA10H_QSPI_DATA2 ((PIN_PA10H_QSPI_DATA2 << 16) | MUX_PA10H_QSPI_DATA2) +#define PORT_PA10H_QSPI_DATA2 (_UL_(1) << 10) +#define PIN_PA11H_QSPI_DATA3 _L_(11) /**< \brief QSPI signal: DATA3 on PA11 mux H */ +#define MUX_PA11H_QSPI_DATA3 _L_(7) +#define PINMUX_PA11H_QSPI_DATA3 ((PIN_PA11H_QSPI_DATA3 << 16) | MUX_PA11H_QSPI_DATA3) +#define PORT_PA11H_QSPI_DATA3 (_UL_(1) << 11) +#define PIN_PB10H_QSPI_SCK _L_(42) /**< \brief QSPI signal: SCK on PB10 mux H */ +#define MUX_PB10H_QSPI_SCK _L_(7) +#define PINMUX_PB10H_QSPI_SCK ((PIN_PB10H_QSPI_SCK << 16) | MUX_PB10H_QSPI_SCK) +#define PORT_PB10H_QSPI_SCK (_UL_(1) << 10) +/* ========== PORT definition for CCL peripheral ========== */ +#define PIN_PA04N_CCL_IN0 _L_(4) /**< \brief CCL signal: IN0 on PA04 mux N */ +#define MUX_PA04N_CCL_IN0 _L_(13) +#define PINMUX_PA04N_CCL_IN0 ((PIN_PA04N_CCL_IN0 << 16) | MUX_PA04N_CCL_IN0) +#define PORT_PA04N_CCL_IN0 (_UL_(1) << 4) +#define PIN_PA16N_CCL_IN0 _L_(16) /**< \brief CCL signal: IN0 on PA16 mux N */ +#define MUX_PA16N_CCL_IN0 _L_(13) +#define PINMUX_PA16N_CCL_IN0 ((PIN_PA16N_CCL_IN0 << 16) | MUX_PA16N_CCL_IN0) +#define PORT_PA16N_CCL_IN0 (_UL_(1) << 16) +#define PIN_PB22N_CCL_IN0 _L_(54) /**< \brief CCL signal: IN0 on PB22 mux N */ +#define MUX_PB22N_CCL_IN0 _L_(13) +#define PINMUX_PB22N_CCL_IN0 ((PIN_PB22N_CCL_IN0 << 16) | MUX_PB22N_CCL_IN0) +#define PORT_PB22N_CCL_IN0 (_UL_(1) << 22) +#define PIN_PA05N_CCL_IN1 _L_(5) /**< \brief CCL signal: IN1 on PA05 mux N */ +#define MUX_PA05N_CCL_IN1 _L_(13) +#define PINMUX_PA05N_CCL_IN1 ((PIN_PA05N_CCL_IN1 << 16) | MUX_PA05N_CCL_IN1) +#define PORT_PA05N_CCL_IN1 (_UL_(1) << 5) +#define PIN_PA17N_CCL_IN1 _L_(17) /**< \brief CCL signal: IN1 on PA17 mux N */ +#define MUX_PA17N_CCL_IN1 _L_(13) +#define PINMUX_PA17N_CCL_IN1 ((PIN_PA17N_CCL_IN1 << 16) | MUX_PA17N_CCL_IN1) +#define PORT_PA17N_CCL_IN1 (_UL_(1) << 17) +#define PIN_PB00N_CCL_IN1 _L_(32) /**< \brief CCL signal: IN1 on PB00 mux N */ +#define MUX_PB00N_CCL_IN1 _L_(13) +#define PINMUX_PB00N_CCL_IN1 ((PIN_PB00N_CCL_IN1 << 16) | MUX_PB00N_CCL_IN1) +#define PORT_PB00N_CCL_IN1 (_UL_(1) << 0) +#define PIN_PA06N_CCL_IN2 _L_(6) /**< \brief CCL signal: IN2 on PA06 mux N */ +#define MUX_PA06N_CCL_IN2 _L_(13) +#define PINMUX_PA06N_CCL_IN2 ((PIN_PA06N_CCL_IN2 << 16) | MUX_PA06N_CCL_IN2) +#define PORT_PA06N_CCL_IN2 (_UL_(1) << 6) +#define PIN_PA18N_CCL_IN2 _L_(18) /**< \brief CCL signal: IN2 on PA18 mux N */ +#define MUX_PA18N_CCL_IN2 _L_(13) +#define PINMUX_PA18N_CCL_IN2 ((PIN_PA18N_CCL_IN2 << 16) | MUX_PA18N_CCL_IN2) +#define PORT_PA18N_CCL_IN2 (_UL_(1) << 18) +#define PIN_PB01N_CCL_IN2 _L_(33) /**< \brief CCL signal: IN2 on PB01 mux N */ +#define MUX_PB01N_CCL_IN2 _L_(13) +#define PINMUX_PB01N_CCL_IN2 ((PIN_PB01N_CCL_IN2 << 16) | MUX_PB01N_CCL_IN2) +#define PORT_PB01N_CCL_IN2 (_UL_(1) << 1) +#define PIN_PA08N_CCL_IN3 _L_(8) /**< \brief CCL signal: IN3 on PA08 mux N */ +#define MUX_PA08N_CCL_IN3 _L_(13) +#define PINMUX_PA08N_CCL_IN3 ((PIN_PA08N_CCL_IN3 << 16) | MUX_PA08N_CCL_IN3) +#define PORT_PA08N_CCL_IN3 (_UL_(1) << 8) +#define PIN_PA30N_CCL_IN3 _L_(30) /**< \brief CCL signal: IN3 on PA30 mux N */ +#define MUX_PA30N_CCL_IN3 _L_(13) +#define PINMUX_PA30N_CCL_IN3 ((PIN_PA30N_CCL_IN3 << 16) | MUX_PA30N_CCL_IN3) +#define PORT_PA30N_CCL_IN3 (_UL_(1) << 30) +#define PIN_PA09N_CCL_IN4 _L_(9) /**< \brief CCL signal: IN4 on PA09 mux N */ +#define MUX_PA09N_CCL_IN4 _L_(13) +#define PINMUX_PA09N_CCL_IN4 ((PIN_PA09N_CCL_IN4 << 16) | MUX_PA09N_CCL_IN4) +#define PORT_PA09N_CCL_IN4 (_UL_(1) << 9) +#define PIN_PC27N_CCL_IN4 _L_(91) /**< \brief CCL signal: IN4 on PC27 mux N */ +#define MUX_PC27N_CCL_IN4 _L_(13) +#define PINMUX_PC27N_CCL_IN4 ((PIN_PC27N_CCL_IN4 << 16) | MUX_PC27N_CCL_IN4) +#define PORT_PC27N_CCL_IN4 (_UL_(1) << 27) +#define PIN_PA10N_CCL_IN5 _L_(10) /**< \brief CCL signal: IN5 on PA10 mux N */ +#define MUX_PA10N_CCL_IN5 _L_(13) +#define PINMUX_PA10N_CCL_IN5 ((PIN_PA10N_CCL_IN5 << 16) | MUX_PA10N_CCL_IN5) +#define PORT_PA10N_CCL_IN5 (_UL_(1) << 10) +#define PIN_PC28N_CCL_IN5 _L_(92) /**< \brief CCL signal: IN5 on PC28 mux N */ +#define MUX_PC28N_CCL_IN5 _L_(13) +#define PINMUX_PC28N_CCL_IN5 ((PIN_PC28N_CCL_IN5 << 16) | MUX_PC28N_CCL_IN5) +#define PORT_PC28N_CCL_IN5 (_UL_(1) << 28) +#define PIN_PA22N_CCL_IN6 _L_(22) /**< \brief CCL signal: IN6 on PA22 mux N */ +#define MUX_PA22N_CCL_IN6 _L_(13) +#define PINMUX_PA22N_CCL_IN6 ((PIN_PA22N_CCL_IN6 << 16) | MUX_PA22N_CCL_IN6) +#define PORT_PA22N_CCL_IN6 (_UL_(1) << 22) +#define PIN_PB06N_CCL_IN6 _L_(38) /**< \brief CCL signal: IN6 on PB06 mux N */ +#define MUX_PB06N_CCL_IN6 _L_(13) +#define PINMUX_PB06N_CCL_IN6 ((PIN_PB06N_CCL_IN6 << 16) | MUX_PB06N_CCL_IN6) +#define PORT_PB06N_CCL_IN6 (_UL_(1) << 6) +#define PIN_PA23N_CCL_IN7 _L_(23) /**< \brief CCL signal: IN7 on PA23 mux N */ +#define MUX_PA23N_CCL_IN7 _L_(13) +#define PINMUX_PA23N_CCL_IN7 ((PIN_PA23N_CCL_IN7 << 16) | MUX_PA23N_CCL_IN7) +#define PORT_PA23N_CCL_IN7 (_UL_(1) << 23) +#define PIN_PB07N_CCL_IN7 _L_(39) /**< \brief CCL signal: IN7 on PB07 mux N */ +#define MUX_PB07N_CCL_IN7 _L_(13) +#define PINMUX_PB07N_CCL_IN7 ((PIN_PB07N_CCL_IN7 << 16) | MUX_PB07N_CCL_IN7) +#define PORT_PB07N_CCL_IN7 (_UL_(1) << 7) +#define PIN_PA24N_CCL_IN8 _L_(24) /**< \brief CCL signal: IN8 on PA24 mux N */ +#define MUX_PA24N_CCL_IN8 _L_(13) +#define PINMUX_PA24N_CCL_IN8 ((PIN_PA24N_CCL_IN8 << 16) | MUX_PA24N_CCL_IN8) +#define PORT_PA24N_CCL_IN8 (_UL_(1) << 24) +#define PIN_PB08N_CCL_IN8 _L_(40) /**< \brief CCL signal: IN8 on PB08 mux N */ +#define MUX_PB08N_CCL_IN8 _L_(13) +#define PINMUX_PB08N_CCL_IN8 ((PIN_PB08N_CCL_IN8 << 16) | MUX_PB08N_CCL_IN8) +#define PORT_PB08N_CCL_IN8 (_UL_(1) << 8) +#define PIN_PB14N_CCL_IN9 _L_(46) /**< \brief CCL signal: IN9 on PB14 mux N */ +#define MUX_PB14N_CCL_IN9 _L_(13) +#define PINMUX_PB14N_CCL_IN9 ((PIN_PB14N_CCL_IN9 << 16) | MUX_PB14N_CCL_IN9) +#define PORT_PB14N_CCL_IN9 (_UL_(1) << 14) +#define PIN_PC20N_CCL_IN9 _L_(84) /**< \brief CCL signal: IN9 on PC20 mux N */ +#define MUX_PC20N_CCL_IN9 _L_(13) +#define PINMUX_PC20N_CCL_IN9 ((PIN_PC20N_CCL_IN9 << 16) | MUX_PC20N_CCL_IN9) +#define PORT_PC20N_CCL_IN9 (_UL_(1) << 20) +#define PIN_PB15N_CCL_IN10 _L_(47) /**< \brief CCL signal: IN10 on PB15 mux N */ +#define MUX_PB15N_CCL_IN10 _L_(13) +#define PINMUX_PB15N_CCL_IN10 ((PIN_PB15N_CCL_IN10 << 16) | MUX_PB15N_CCL_IN10) +#define PORT_PB15N_CCL_IN10 (_UL_(1) << 15) +#define PIN_PC21N_CCL_IN10 _L_(85) /**< \brief CCL signal: IN10 on PC21 mux N */ +#define MUX_PC21N_CCL_IN10 _L_(13) +#define PINMUX_PC21N_CCL_IN10 ((PIN_PC21N_CCL_IN10 << 16) | MUX_PC21N_CCL_IN10) +#define PORT_PC21N_CCL_IN10 (_UL_(1) << 21) +#define PIN_PB10N_CCL_IN11 _L_(42) /**< \brief CCL signal: IN11 on PB10 mux N */ +#define MUX_PB10N_CCL_IN11 _L_(13) +#define PINMUX_PB10N_CCL_IN11 ((PIN_PB10N_CCL_IN11 << 16) | MUX_PB10N_CCL_IN11) +#define PORT_PB10N_CCL_IN11 (_UL_(1) << 10) +#define PIN_PB16N_CCL_IN11 _L_(48) /**< \brief CCL signal: IN11 on PB16 mux N */ +#define MUX_PB16N_CCL_IN11 _L_(13) +#define PINMUX_PB16N_CCL_IN11 ((PIN_PB16N_CCL_IN11 << 16) | MUX_PB16N_CCL_IN11) +#define PORT_PB16N_CCL_IN11 (_UL_(1) << 16) +#define PIN_PA07N_CCL_OUT0 _L_(7) /**< \brief CCL signal: OUT0 on PA07 mux N */ +#define MUX_PA07N_CCL_OUT0 _L_(13) +#define PINMUX_PA07N_CCL_OUT0 ((PIN_PA07N_CCL_OUT0 << 16) | MUX_PA07N_CCL_OUT0) +#define PORT_PA07N_CCL_OUT0 (_UL_(1) << 7) +#define PIN_PA19N_CCL_OUT0 _L_(19) /**< \brief CCL signal: OUT0 on PA19 mux N */ +#define MUX_PA19N_CCL_OUT0 _L_(13) +#define PINMUX_PA19N_CCL_OUT0 ((PIN_PA19N_CCL_OUT0 << 16) | MUX_PA19N_CCL_OUT0) +#define PORT_PA19N_CCL_OUT0 (_UL_(1) << 19) +#define PIN_PB02N_CCL_OUT0 _L_(34) /**< \brief CCL signal: OUT0 on PB02 mux N */ +#define MUX_PB02N_CCL_OUT0 _L_(13) +#define PINMUX_PB02N_CCL_OUT0 ((PIN_PB02N_CCL_OUT0 << 16) | MUX_PB02N_CCL_OUT0) +#define PORT_PB02N_CCL_OUT0 (_UL_(1) << 2) +#define PIN_PB23N_CCL_OUT0 _L_(55) /**< \brief CCL signal: OUT0 on PB23 mux N */ +#define MUX_PB23N_CCL_OUT0 _L_(13) +#define PINMUX_PB23N_CCL_OUT0 ((PIN_PB23N_CCL_OUT0 << 16) | MUX_PB23N_CCL_OUT0) +#define PORT_PB23N_CCL_OUT0 (_UL_(1) << 23) +#define PIN_PA11N_CCL_OUT1 _L_(11) /**< \brief CCL signal: OUT1 on PA11 mux N */ +#define MUX_PA11N_CCL_OUT1 _L_(13) +#define PINMUX_PA11N_CCL_OUT1 ((PIN_PA11N_CCL_OUT1 << 16) | MUX_PA11N_CCL_OUT1) +#define PORT_PA11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA31N_CCL_OUT1 _L_(31) /**< \brief CCL signal: OUT1 on PA31 mux N */ +#define MUX_PA31N_CCL_OUT1 _L_(13) +#define PINMUX_PA31N_CCL_OUT1 ((PIN_PA31N_CCL_OUT1 << 16) | MUX_PA31N_CCL_OUT1) +#define PORT_PA31N_CCL_OUT1 (_UL_(1) << 31) +#define PIN_PB11N_CCL_OUT1 _L_(43) /**< \brief CCL signal: OUT1 on PB11 mux N */ +#define MUX_PB11N_CCL_OUT1 _L_(13) +#define PINMUX_PB11N_CCL_OUT1 ((PIN_PB11N_CCL_OUT1 << 16) | MUX_PB11N_CCL_OUT1) +#define PORT_PB11N_CCL_OUT1 (_UL_(1) << 11) +#define PIN_PA25N_CCL_OUT2 _L_(25) /**< \brief CCL signal: OUT2 on PA25 mux N */ +#define MUX_PA25N_CCL_OUT2 _L_(13) +#define PINMUX_PA25N_CCL_OUT2 ((PIN_PA25N_CCL_OUT2 << 16) | MUX_PA25N_CCL_OUT2) +#define PORT_PA25N_CCL_OUT2 (_UL_(1) << 25) +#define PIN_PB09N_CCL_OUT2 _L_(41) /**< \brief CCL signal: OUT2 on PB09 mux N */ +#define MUX_PB09N_CCL_OUT2 _L_(13) +#define PINMUX_PB09N_CCL_OUT2 ((PIN_PB09N_CCL_OUT2 << 16) | MUX_PB09N_CCL_OUT2) +#define PORT_PB09N_CCL_OUT2 (_UL_(1) << 9) +#define PIN_PB17N_CCL_OUT3 _L_(49) /**< \brief CCL signal: OUT3 on PB17 mux N */ +#define MUX_PB17N_CCL_OUT3 _L_(13) +#define PINMUX_PB17N_CCL_OUT3 ((PIN_PB17N_CCL_OUT3 << 16) | MUX_PB17N_CCL_OUT3) +#define PORT_PB17N_CCL_OUT3 (_UL_(1) << 17) +/* ========== PORT definition for SERCOM4 peripheral ========== */ +#define PIN_PA13D_SERCOM4_PAD0 _L_(13) /**< \brief SERCOM4 signal: PAD0 on PA13 mux D */ +#define MUX_PA13D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PA13D_SERCOM4_PAD0 ((PIN_PA13D_SERCOM4_PAD0 << 16) | MUX_PA13D_SERCOM4_PAD0) +#define PORT_PA13D_SERCOM4_PAD0 (_UL_(1) << 13) +#define PIN_PB08D_SERCOM4_PAD0 _L_(40) /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */ +#define MUX_PB08D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0) +#define PORT_PB08D_SERCOM4_PAD0 (_UL_(1) << 8) +#define PIN_PB27D_SERCOM4_PAD0 _L_(59) /**< \brief SERCOM4 signal: PAD0 on PB27 mux D */ +#define MUX_PB27D_SERCOM4_PAD0 _L_(3) +#define PINMUX_PB27D_SERCOM4_PAD0 ((PIN_PB27D_SERCOM4_PAD0 << 16) | MUX_PB27D_SERCOM4_PAD0) +#define PORT_PB27D_SERCOM4_PAD0 (_UL_(1) << 27) +#define PIN_PB12C_SERCOM4_PAD0 _L_(44) /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */ +#define MUX_PB12C_SERCOM4_PAD0 _L_(2) +#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0) +#define PORT_PB12C_SERCOM4_PAD0 (_UL_(1) << 12) +#define PIN_PA12D_SERCOM4_PAD1 _L_(12) /**< \brief SERCOM4 signal: PAD1 on PA12 mux D */ +#define MUX_PA12D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PA12D_SERCOM4_PAD1 ((PIN_PA12D_SERCOM4_PAD1 << 16) | MUX_PA12D_SERCOM4_PAD1) +#define PORT_PA12D_SERCOM4_PAD1 (_UL_(1) << 12) +#define PIN_PB09D_SERCOM4_PAD1 _L_(41) /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */ +#define MUX_PB09D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1) +#define PORT_PB09D_SERCOM4_PAD1 (_UL_(1) << 9) +#define PIN_PB26D_SERCOM4_PAD1 _L_(58) /**< \brief SERCOM4 signal: PAD1 on PB26 mux D */ +#define MUX_PB26D_SERCOM4_PAD1 _L_(3) +#define PINMUX_PB26D_SERCOM4_PAD1 ((PIN_PB26D_SERCOM4_PAD1 << 16) | MUX_PB26D_SERCOM4_PAD1) +#define PORT_PB26D_SERCOM4_PAD1 (_UL_(1) << 26) +#define PIN_PB13C_SERCOM4_PAD1 _L_(45) /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */ +#define MUX_PB13C_SERCOM4_PAD1 _L_(2) +#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1) +#define PORT_PB13C_SERCOM4_PAD1 (_UL_(1) << 13) +#define PIN_PA14D_SERCOM4_PAD2 _L_(14) /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */ +#define MUX_PA14D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2) +#define PORT_PA14D_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB10D_SERCOM4_PAD2 _L_(42) /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */ +#define MUX_PB10D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2) +#define PORT_PB10D_SERCOM4_PAD2 (_UL_(1) << 10) +#define PIN_PB28D_SERCOM4_PAD2 _L_(60) /**< \brief SERCOM4 signal: PAD2 on PB28 mux D */ +#define MUX_PB28D_SERCOM4_PAD2 _L_(3) +#define PINMUX_PB28D_SERCOM4_PAD2 ((PIN_PB28D_SERCOM4_PAD2 << 16) | MUX_PB28D_SERCOM4_PAD2) +#define PORT_PB28D_SERCOM4_PAD2 (_UL_(1) << 28) +#define PIN_PB14C_SERCOM4_PAD2 _L_(46) /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */ +#define MUX_PB14C_SERCOM4_PAD2 _L_(2) +#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2) +#define PORT_PB14C_SERCOM4_PAD2 (_UL_(1) << 14) +#define PIN_PB11D_SERCOM4_PAD3 _L_(43) /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */ +#define MUX_PB11D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3) +#define PORT_PB11D_SERCOM4_PAD3 (_UL_(1) << 11) +#define PIN_PB29D_SERCOM4_PAD3 _L_(61) /**< \brief SERCOM4 signal: PAD3 on PB29 mux D */ +#define MUX_PB29D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PB29D_SERCOM4_PAD3 ((PIN_PB29D_SERCOM4_PAD3 << 16) | MUX_PB29D_SERCOM4_PAD3) +#define PORT_PB29D_SERCOM4_PAD3 (_UL_(1) << 29) +#define PIN_PA15D_SERCOM4_PAD3 _L_(15) /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */ +#define MUX_PA15D_SERCOM4_PAD3 _L_(3) +#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3) +#define PORT_PA15D_SERCOM4_PAD3 (_UL_(1) << 15) +#define PIN_PB15C_SERCOM4_PAD3 _L_(47) /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */ +#define MUX_PB15C_SERCOM4_PAD3 _L_(2) +#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3) +#define PORT_PB15C_SERCOM4_PAD3 (_UL_(1) << 15) +/* ========== PORT definition for SERCOM5 peripheral ========== */ +#define PIN_PA23D_SERCOM5_PAD0 _L_(23) /**< \brief SERCOM5 signal: PAD0 on PA23 mux D */ +#define MUX_PA23D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PA23D_SERCOM5_PAD0 ((PIN_PA23D_SERCOM5_PAD0 << 16) | MUX_PA23D_SERCOM5_PAD0) +#define PORT_PA23D_SERCOM5_PAD0 (_UL_(1) << 23) +#define PIN_PB02D_SERCOM5_PAD0 _L_(34) /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */ +#define MUX_PB02D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0) +#define PORT_PB02D_SERCOM5_PAD0 (_UL_(1) << 2) +#define PIN_PB31D_SERCOM5_PAD0 _L_(63) /**< \brief SERCOM5 signal: PAD0 on PB31 mux D */ +#define MUX_PB31D_SERCOM5_PAD0 _L_(3) +#define PINMUX_PB31D_SERCOM5_PAD0 ((PIN_PB31D_SERCOM5_PAD0 << 16) | MUX_PB31D_SERCOM5_PAD0) +#define PORT_PB31D_SERCOM5_PAD0 (_UL_(1) << 31) +#define PIN_PB16C_SERCOM5_PAD0 _L_(48) /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */ +#define MUX_PB16C_SERCOM5_PAD0 _L_(2) +#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0) +#define PORT_PB16C_SERCOM5_PAD0 (_UL_(1) << 16) +#define PIN_PA22D_SERCOM5_PAD1 _L_(22) /**< \brief SERCOM5 signal: PAD1 on PA22 mux D */ +#define MUX_PA22D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PA22D_SERCOM5_PAD1 ((PIN_PA22D_SERCOM5_PAD1 << 16) | MUX_PA22D_SERCOM5_PAD1) +#define PORT_PA22D_SERCOM5_PAD1 (_UL_(1) << 22) +#define PIN_PB03D_SERCOM5_PAD1 _L_(35) /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */ +#define MUX_PB03D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1) +#define PORT_PB03D_SERCOM5_PAD1 (_UL_(1) << 3) +#define PIN_PB30D_SERCOM5_PAD1 _L_(62) /**< \brief SERCOM5 signal: PAD1 on PB30 mux D */ +#define MUX_PB30D_SERCOM5_PAD1 _L_(3) +#define PINMUX_PB30D_SERCOM5_PAD1 ((PIN_PB30D_SERCOM5_PAD1 << 16) | MUX_PB30D_SERCOM5_PAD1) +#define PORT_PB30D_SERCOM5_PAD1 (_UL_(1) << 30) +#define PIN_PB17C_SERCOM5_PAD1 _L_(49) /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */ +#define MUX_PB17C_SERCOM5_PAD1 _L_(2) +#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1) +#define PORT_PB17C_SERCOM5_PAD1 (_UL_(1) << 17) +#define PIN_PA24D_SERCOM5_PAD2 _L_(24) /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */ +#define MUX_PA24D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2) +#define PORT_PA24D_SERCOM5_PAD2 (_UL_(1) << 24) +#define PIN_PB00D_SERCOM5_PAD2 _L_(32) /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */ +#define MUX_PB00D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2) +#define PORT_PB00D_SERCOM5_PAD2 (_UL_(1) << 0) +#define PIN_PB22D_SERCOM5_PAD2 _L_(54) /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */ +#define MUX_PB22D_SERCOM5_PAD2 _L_(3) +#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2) +#define PORT_PB22D_SERCOM5_PAD2 (_UL_(1) << 22) +#define PIN_PA20C_SERCOM5_PAD2 _L_(20) /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */ +#define MUX_PA20C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2) +#define PORT_PA20C_SERCOM5_PAD2 (_UL_(1) << 20) +#define PIN_PB18C_SERCOM5_PAD2 _L_(50) /**< \brief SERCOM5 signal: PAD2 on PB18 mux C */ +#define MUX_PB18C_SERCOM5_PAD2 _L_(2) +#define PINMUX_PB18C_SERCOM5_PAD2 ((PIN_PB18C_SERCOM5_PAD2 << 16) | MUX_PB18C_SERCOM5_PAD2) +#define PORT_PB18C_SERCOM5_PAD2 (_UL_(1) << 18) +#define PIN_PA25D_SERCOM5_PAD3 _L_(25) /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */ +#define MUX_PA25D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3) +#define PORT_PA25D_SERCOM5_PAD3 (_UL_(1) << 25) +#define PIN_PB01D_SERCOM5_PAD3 _L_(33) /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */ +#define MUX_PB01D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3) +#define PORT_PB01D_SERCOM5_PAD3 (_UL_(1) << 1) +#define PIN_PB23D_SERCOM5_PAD3 _L_(55) /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */ +#define MUX_PB23D_SERCOM5_PAD3 _L_(3) +#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3) +#define PORT_PB23D_SERCOM5_PAD3 (_UL_(1) << 23) +#define PIN_PA21C_SERCOM5_PAD3 _L_(21) /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */ +#define MUX_PA21C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3) +#define PORT_PA21C_SERCOM5_PAD3 (_UL_(1) << 21) +#define PIN_PB19C_SERCOM5_PAD3 _L_(51) /**< \brief SERCOM5 signal: PAD3 on PB19 mux C */ +#define MUX_PB19C_SERCOM5_PAD3 _L_(2) +#define PINMUX_PB19C_SERCOM5_PAD3 ((PIN_PB19C_SERCOM5_PAD3 << 16) | MUX_PB19C_SERCOM5_PAD3) +#define PORT_PB19C_SERCOM5_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM6 peripheral ========== */ +#define PIN_PD09D_SERCOM6_PAD0 _L_(105) /**< \brief SERCOM6 signal: PAD0 on PD09 mux D */ +#define MUX_PD09D_SERCOM6_PAD0 _L_(3) +#define PINMUX_PD09D_SERCOM6_PAD0 ((PIN_PD09D_SERCOM6_PAD0 << 16) | MUX_PD09D_SERCOM6_PAD0) +#define PORT_PD09D_SERCOM6_PAD0 (_UL_(1) << 9) +#define PIN_PC13D_SERCOM6_PAD0 _L_(77) /**< \brief SERCOM6 signal: PAD0 on PC13 mux D */ +#define MUX_PC13D_SERCOM6_PAD0 _L_(3) +#define PINMUX_PC13D_SERCOM6_PAD0 ((PIN_PC13D_SERCOM6_PAD0 << 16) | MUX_PC13D_SERCOM6_PAD0) +#define PORT_PC13D_SERCOM6_PAD0 (_UL_(1) << 13) +#define PIN_PC04C_SERCOM6_PAD0 _L_(68) /**< \brief SERCOM6 signal: PAD0 on PC04 mux C */ +#define MUX_PC04C_SERCOM6_PAD0 _L_(2) +#define PINMUX_PC04C_SERCOM6_PAD0 ((PIN_PC04C_SERCOM6_PAD0 << 16) | MUX_PC04C_SERCOM6_PAD0) +#define PORT_PC04C_SERCOM6_PAD0 (_UL_(1) << 4) +#define PIN_PC16C_SERCOM6_PAD0 _L_(80) /**< \brief SERCOM6 signal: PAD0 on PC16 mux C */ +#define MUX_PC16C_SERCOM6_PAD0 _L_(2) +#define PINMUX_PC16C_SERCOM6_PAD0 ((PIN_PC16C_SERCOM6_PAD0 << 16) | MUX_PC16C_SERCOM6_PAD0) +#define PORT_PC16C_SERCOM6_PAD0 (_UL_(1) << 16) +#define PIN_PD08D_SERCOM6_PAD1 _L_(104) /**< \brief SERCOM6 signal: PAD1 on PD08 mux D */ +#define MUX_PD08D_SERCOM6_PAD1 _L_(3) +#define PINMUX_PD08D_SERCOM6_PAD1 ((PIN_PD08D_SERCOM6_PAD1 << 16) | MUX_PD08D_SERCOM6_PAD1) +#define PORT_PD08D_SERCOM6_PAD1 (_UL_(1) << 8) +#define PIN_PC12D_SERCOM6_PAD1 _L_(76) /**< \brief SERCOM6 signal: PAD1 on PC12 mux D */ +#define MUX_PC12D_SERCOM6_PAD1 _L_(3) +#define PINMUX_PC12D_SERCOM6_PAD1 ((PIN_PC12D_SERCOM6_PAD1 << 16) | MUX_PC12D_SERCOM6_PAD1) +#define PORT_PC12D_SERCOM6_PAD1 (_UL_(1) << 12) +#define PIN_PC05C_SERCOM6_PAD1 _L_(69) /**< \brief SERCOM6 signal: PAD1 on PC05 mux C */ +#define MUX_PC05C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC05C_SERCOM6_PAD1 ((PIN_PC05C_SERCOM6_PAD1 << 16) | MUX_PC05C_SERCOM6_PAD1) +#define PORT_PC05C_SERCOM6_PAD1 (_UL_(1) << 5) +#define PIN_PC17C_SERCOM6_PAD1 _L_(81) /**< \brief SERCOM6 signal: PAD1 on PC17 mux C */ +#define MUX_PC17C_SERCOM6_PAD1 _L_(2) +#define PINMUX_PC17C_SERCOM6_PAD1 ((PIN_PC17C_SERCOM6_PAD1 << 16) | MUX_PC17C_SERCOM6_PAD1) +#define PORT_PC17C_SERCOM6_PAD1 (_UL_(1) << 17) +#define PIN_PC14D_SERCOM6_PAD2 _L_(78) /**< \brief SERCOM6 signal: PAD2 on PC14 mux D */ +#define MUX_PC14D_SERCOM6_PAD2 _L_(3) +#define PINMUX_PC14D_SERCOM6_PAD2 ((PIN_PC14D_SERCOM6_PAD2 << 16) | MUX_PC14D_SERCOM6_PAD2) +#define PORT_PC14D_SERCOM6_PAD2 (_UL_(1) << 14) +#define PIN_PD10D_SERCOM6_PAD2 _L_(106) /**< \brief SERCOM6 signal: PAD2 on PD10 mux D */ +#define MUX_PD10D_SERCOM6_PAD2 _L_(3) +#define PINMUX_PD10D_SERCOM6_PAD2 ((PIN_PD10D_SERCOM6_PAD2 << 16) | MUX_PD10D_SERCOM6_PAD2) +#define PORT_PD10D_SERCOM6_PAD2 (_UL_(1) << 10) +#define PIN_PC06C_SERCOM6_PAD2 _L_(70) /**< \brief SERCOM6 signal: PAD2 on PC06 mux C */ +#define MUX_PC06C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC06C_SERCOM6_PAD2 ((PIN_PC06C_SERCOM6_PAD2 << 16) | MUX_PC06C_SERCOM6_PAD2) +#define PORT_PC06C_SERCOM6_PAD2 (_UL_(1) << 6) +#define PIN_PC10C_SERCOM6_PAD2 _L_(74) /**< \brief SERCOM6 signal: PAD2 on PC10 mux C */ +#define MUX_PC10C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC10C_SERCOM6_PAD2 ((PIN_PC10C_SERCOM6_PAD2 << 16) | MUX_PC10C_SERCOM6_PAD2) +#define PORT_PC10C_SERCOM6_PAD2 (_UL_(1) << 10) +#define PIN_PC18C_SERCOM6_PAD2 _L_(82) /**< \brief SERCOM6 signal: PAD2 on PC18 mux C */ +#define MUX_PC18C_SERCOM6_PAD2 _L_(2) +#define PINMUX_PC18C_SERCOM6_PAD2 ((PIN_PC18C_SERCOM6_PAD2 << 16) | MUX_PC18C_SERCOM6_PAD2) +#define PORT_PC18C_SERCOM6_PAD2 (_UL_(1) << 18) +#define PIN_PC15D_SERCOM6_PAD3 _L_(79) /**< \brief SERCOM6 signal: PAD3 on PC15 mux D */ +#define MUX_PC15D_SERCOM6_PAD3 _L_(3) +#define PINMUX_PC15D_SERCOM6_PAD3 ((PIN_PC15D_SERCOM6_PAD3 << 16) | MUX_PC15D_SERCOM6_PAD3) +#define PORT_PC15D_SERCOM6_PAD3 (_UL_(1) << 15) +#define PIN_PD11D_SERCOM6_PAD3 _L_(107) /**< \brief SERCOM6 signal: PAD3 on PD11 mux D */ +#define MUX_PD11D_SERCOM6_PAD3 _L_(3) +#define PINMUX_PD11D_SERCOM6_PAD3 ((PIN_PD11D_SERCOM6_PAD3 << 16) | MUX_PD11D_SERCOM6_PAD3) +#define PORT_PD11D_SERCOM6_PAD3 (_UL_(1) << 11) +#define PIN_PC07C_SERCOM6_PAD3 _L_(71) /**< \brief SERCOM6 signal: PAD3 on PC07 mux C */ +#define MUX_PC07C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC07C_SERCOM6_PAD3 ((PIN_PC07C_SERCOM6_PAD3 << 16) | MUX_PC07C_SERCOM6_PAD3) +#define PORT_PC07C_SERCOM6_PAD3 (_UL_(1) << 7) +#define PIN_PC11C_SERCOM6_PAD3 _L_(75) /**< \brief SERCOM6 signal: PAD3 on PC11 mux C */ +#define MUX_PC11C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC11C_SERCOM6_PAD3 ((PIN_PC11C_SERCOM6_PAD3 << 16) | MUX_PC11C_SERCOM6_PAD3) +#define PORT_PC11C_SERCOM6_PAD3 (_UL_(1) << 11) +#define PIN_PC19C_SERCOM6_PAD3 _L_(83) /**< \brief SERCOM6 signal: PAD3 on PC19 mux C */ +#define MUX_PC19C_SERCOM6_PAD3 _L_(2) +#define PINMUX_PC19C_SERCOM6_PAD3 ((PIN_PC19C_SERCOM6_PAD3 << 16) | MUX_PC19C_SERCOM6_PAD3) +#define PORT_PC19C_SERCOM6_PAD3 (_UL_(1) << 19) +/* ========== PORT definition for SERCOM7 peripheral ========== */ +#define PIN_PB21D_SERCOM7_PAD0 _L_(53) /**< \brief SERCOM7 signal: PAD0 on PB21 mux D */ +#define MUX_PB21D_SERCOM7_PAD0 _L_(3) +#define PINMUX_PB21D_SERCOM7_PAD0 ((PIN_PB21D_SERCOM7_PAD0 << 16) | MUX_PB21D_SERCOM7_PAD0) +#define PORT_PB21D_SERCOM7_PAD0 (_UL_(1) << 21) +#define PIN_PD08C_SERCOM7_PAD0 _L_(104) /**< \brief SERCOM7 signal: PAD0 on PD08 mux C */ +#define MUX_PD08C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PD08C_SERCOM7_PAD0 ((PIN_PD08C_SERCOM7_PAD0 << 16) | MUX_PD08C_SERCOM7_PAD0) +#define PORT_PD08C_SERCOM7_PAD0 (_UL_(1) << 8) +#define PIN_PB30C_SERCOM7_PAD0 _L_(62) /**< \brief SERCOM7 signal: PAD0 on PB30 mux C */ +#define MUX_PB30C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PB30C_SERCOM7_PAD0 ((PIN_PB30C_SERCOM7_PAD0 << 16) | MUX_PB30C_SERCOM7_PAD0) +#define PORT_PB30C_SERCOM7_PAD0 (_UL_(1) << 30) +#define PIN_PC12C_SERCOM7_PAD0 _L_(76) /**< \brief SERCOM7 signal: PAD0 on PC12 mux C */ +#define MUX_PC12C_SERCOM7_PAD0 _L_(2) +#define PINMUX_PC12C_SERCOM7_PAD0 ((PIN_PC12C_SERCOM7_PAD0 << 16) | MUX_PC12C_SERCOM7_PAD0) +#define PORT_PC12C_SERCOM7_PAD0 (_UL_(1) << 12) +#define PIN_PB20D_SERCOM7_PAD1 _L_(52) /**< \brief SERCOM7 signal: PAD1 on PB20 mux D */ +#define MUX_PB20D_SERCOM7_PAD1 _L_(3) +#define PINMUX_PB20D_SERCOM7_PAD1 ((PIN_PB20D_SERCOM7_PAD1 << 16) | MUX_PB20D_SERCOM7_PAD1) +#define PORT_PB20D_SERCOM7_PAD1 (_UL_(1) << 20) +#define PIN_PD09C_SERCOM7_PAD1 _L_(105) /**< \brief SERCOM7 signal: PAD1 on PD09 mux C */ +#define MUX_PD09C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PD09C_SERCOM7_PAD1 ((PIN_PD09C_SERCOM7_PAD1 << 16) | MUX_PD09C_SERCOM7_PAD1) +#define PORT_PD09C_SERCOM7_PAD1 (_UL_(1) << 9) +#define PIN_PB31C_SERCOM7_PAD1 _L_(63) /**< \brief SERCOM7 signal: PAD1 on PB31 mux C */ +#define MUX_PB31C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PB31C_SERCOM7_PAD1 ((PIN_PB31C_SERCOM7_PAD1 << 16) | MUX_PB31C_SERCOM7_PAD1) +#define PORT_PB31C_SERCOM7_PAD1 (_UL_(1) << 31) +#define PIN_PC13C_SERCOM7_PAD1 _L_(77) /**< \brief SERCOM7 signal: PAD1 on PC13 mux C */ +#define MUX_PC13C_SERCOM7_PAD1 _L_(2) +#define PINMUX_PC13C_SERCOM7_PAD1 ((PIN_PC13C_SERCOM7_PAD1 << 16) | MUX_PC13C_SERCOM7_PAD1) +#define PORT_PC13C_SERCOM7_PAD1 (_UL_(1) << 13) +#define PIN_PB18D_SERCOM7_PAD2 _L_(50) /**< \brief SERCOM7 signal: PAD2 on PB18 mux D */ +#define MUX_PB18D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PB18D_SERCOM7_PAD2 ((PIN_PB18D_SERCOM7_PAD2 << 16) | MUX_PB18D_SERCOM7_PAD2) +#define PORT_PB18D_SERCOM7_PAD2 (_UL_(1) << 18) +#define PIN_PC10D_SERCOM7_PAD2 _L_(74) /**< \brief SERCOM7 signal: PAD2 on PC10 mux D */ +#define MUX_PC10D_SERCOM7_PAD2 _L_(3) +#define PINMUX_PC10D_SERCOM7_PAD2 ((PIN_PC10D_SERCOM7_PAD2 << 16) | MUX_PC10D_SERCOM7_PAD2) +#define PORT_PC10D_SERCOM7_PAD2 (_UL_(1) << 10) +#define PIN_PC14C_SERCOM7_PAD2 _L_(78) /**< \brief SERCOM7 signal: PAD2 on PC14 mux C */ +#define MUX_PC14C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PC14C_SERCOM7_PAD2 ((PIN_PC14C_SERCOM7_PAD2 << 16) | MUX_PC14C_SERCOM7_PAD2) +#define PORT_PC14C_SERCOM7_PAD2 (_UL_(1) << 14) +#define PIN_PD10C_SERCOM7_PAD2 _L_(106) /**< \brief SERCOM7 signal: PAD2 on PD10 mux C */ +#define MUX_PD10C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PD10C_SERCOM7_PAD2 ((PIN_PD10C_SERCOM7_PAD2 << 16) | MUX_PD10C_SERCOM7_PAD2) +#define PORT_PD10C_SERCOM7_PAD2 (_UL_(1) << 10) +#define PIN_PA30C_SERCOM7_PAD2 _L_(30) /**< \brief SERCOM7 signal: PAD2 on PA30 mux C */ +#define MUX_PA30C_SERCOM7_PAD2 _L_(2) +#define PINMUX_PA30C_SERCOM7_PAD2 ((PIN_PA30C_SERCOM7_PAD2 << 16) | MUX_PA30C_SERCOM7_PAD2) +#define PORT_PA30C_SERCOM7_PAD2 (_UL_(1) << 30) +#define PIN_PB19D_SERCOM7_PAD3 _L_(51) /**< \brief SERCOM7 signal: PAD3 on PB19 mux D */ +#define MUX_PB19D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PB19D_SERCOM7_PAD3 ((PIN_PB19D_SERCOM7_PAD3 << 16) | MUX_PB19D_SERCOM7_PAD3) +#define PORT_PB19D_SERCOM7_PAD3 (_UL_(1) << 19) +#define PIN_PC11D_SERCOM7_PAD3 _L_(75) /**< \brief SERCOM7 signal: PAD3 on PC11 mux D */ +#define MUX_PC11D_SERCOM7_PAD3 _L_(3) +#define PINMUX_PC11D_SERCOM7_PAD3 ((PIN_PC11D_SERCOM7_PAD3 << 16) | MUX_PC11D_SERCOM7_PAD3) +#define PORT_PC11D_SERCOM7_PAD3 (_UL_(1) << 11) +#define PIN_PC15C_SERCOM7_PAD3 _L_(79) /**< \brief SERCOM7 signal: PAD3 on PC15 mux C */ +#define MUX_PC15C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PC15C_SERCOM7_PAD3 ((PIN_PC15C_SERCOM7_PAD3 << 16) | MUX_PC15C_SERCOM7_PAD3) +#define PORT_PC15C_SERCOM7_PAD3 (_UL_(1) << 15) +#define PIN_PD11C_SERCOM7_PAD3 _L_(107) /**< \brief SERCOM7 signal: PAD3 on PD11 mux C */ +#define MUX_PD11C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PD11C_SERCOM7_PAD3 ((PIN_PD11C_SERCOM7_PAD3 << 16) | MUX_PD11C_SERCOM7_PAD3) +#define PORT_PD11C_SERCOM7_PAD3 (_UL_(1) << 11) +#define PIN_PA31C_SERCOM7_PAD3 _L_(31) /**< \brief SERCOM7 signal: PAD3 on PA31 mux C */ +#define MUX_PA31C_SERCOM7_PAD3 _L_(2) +#define PINMUX_PA31C_SERCOM7_PAD3 ((PIN_PA31C_SERCOM7_PAD3 << 16) | MUX_PA31C_SERCOM7_PAD3) +#define PORT_PA31C_SERCOM7_PAD3 (_UL_(1) << 31) +/* ========== PORT definition for TCC4 peripheral ========== */ +#define PIN_PB14F_TCC4_WO0 _L_(46) /**< \brief TCC4 signal: WO0 on PB14 mux F */ +#define MUX_PB14F_TCC4_WO0 _L_(5) +#define PINMUX_PB14F_TCC4_WO0 ((PIN_PB14F_TCC4_WO0 << 16) | MUX_PB14F_TCC4_WO0) +#define PORT_PB14F_TCC4_WO0 (_UL_(1) << 14) +#define PIN_PB30F_TCC4_WO0 _L_(62) /**< \brief TCC4 signal: WO0 on PB30 mux F */ +#define MUX_PB30F_TCC4_WO0 _L_(5) +#define PINMUX_PB30F_TCC4_WO0 ((PIN_PB30F_TCC4_WO0 << 16) | MUX_PB30F_TCC4_WO0) +#define PORT_PB30F_TCC4_WO0 (_UL_(1) << 30) +#define PIN_PB15F_TCC4_WO1 _L_(47) /**< \brief TCC4 signal: WO1 on PB15 mux F */ +#define MUX_PB15F_TCC4_WO1 _L_(5) +#define PINMUX_PB15F_TCC4_WO1 ((PIN_PB15F_TCC4_WO1 << 16) | MUX_PB15F_TCC4_WO1) +#define PORT_PB15F_TCC4_WO1 (_UL_(1) << 15) +#define PIN_PB31F_TCC4_WO1 _L_(63) /**< \brief TCC4 signal: WO1 on PB31 mux F */ +#define MUX_PB31F_TCC4_WO1 _L_(5) +#define PINMUX_PB31F_TCC4_WO1 ((PIN_PB31F_TCC4_WO1 << 16) | MUX_PB31F_TCC4_WO1) +#define PORT_PB31F_TCC4_WO1 (_UL_(1) << 31) +/* ========== PORT definition for TC6 peripheral ========== */ +#define PIN_PA30E_TC6_WO0 _L_(30) /**< \brief TC6 signal: WO0 on PA30 mux E */ +#define MUX_PA30E_TC6_WO0 _L_(4) +#define PINMUX_PA30E_TC6_WO0 ((PIN_PA30E_TC6_WO0 << 16) | MUX_PA30E_TC6_WO0) +#define PORT_PA30E_TC6_WO0 (_UL_(1) << 30) +#define PIN_PB02E_TC6_WO0 _L_(34) /**< \brief TC6 signal: WO0 on PB02 mux E */ +#define MUX_PB02E_TC6_WO0 _L_(4) +#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0) +#define PORT_PB02E_TC6_WO0 (_UL_(1) << 2) +#define PIN_PB16E_TC6_WO0 _L_(48) /**< \brief TC6 signal: WO0 on PB16 mux E */ +#define MUX_PB16E_TC6_WO0 _L_(4) +#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0) +#define PORT_PB16E_TC6_WO0 (_UL_(1) << 16) +#define PIN_PA31E_TC6_WO1 _L_(31) /**< \brief TC6 signal: WO1 on PA31 mux E */ +#define MUX_PA31E_TC6_WO1 _L_(4) +#define PINMUX_PA31E_TC6_WO1 ((PIN_PA31E_TC6_WO1 << 16) | MUX_PA31E_TC6_WO1) +#define PORT_PA31E_TC6_WO1 (_UL_(1) << 31) +#define PIN_PB03E_TC6_WO1 _L_(35) /**< \brief TC6 signal: WO1 on PB03 mux E */ +#define MUX_PB03E_TC6_WO1 _L_(4) +#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1) +#define PORT_PB03E_TC6_WO1 (_UL_(1) << 3) +#define PIN_PB17E_TC6_WO1 _L_(49) /**< \brief TC6 signal: WO1 on PB17 mux E */ +#define MUX_PB17E_TC6_WO1 _L_(4) +#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1) +#define PORT_PB17E_TC6_WO1 (_UL_(1) << 17) +/* ========== PORT definition for TC7 peripheral ========== */ +#define PIN_PA20E_TC7_WO0 _L_(20) /**< \brief TC7 signal: WO0 on PA20 mux E */ +#define MUX_PA20E_TC7_WO0 _L_(4) +#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0) +#define PORT_PA20E_TC7_WO0 (_UL_(1) << 20) +#define PIN_PB00E_TC7_WO0 _L_(32) /**< \brief TC7 signal: WO0 on PB00 mux E */ +#define MUX_PB00E_TC7_WO0 _L_(4) +#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0) +#define PORT_PB00E_TC7_WO0 (_UL_(1) << 0) +#define PIN_PB22E_TC7_WO0 _L_(54) /**< \brief TC7 signal: WO0 on PB22 mux E */ +#define MUX_PB22E_TC7_WO0 _L_(4) +#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0) +#define PORT_PB22E_TC7_WO0 (_UL_(1) << 22) +#define PIN_PA21E_TC7_WO1 _L_(21) /**< \brief TC7 signal: WO1 on PA21 mux E */ +#define MUX_PA21E_TC7_WO1 _L_(4) +#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1) +#define PORT_PA21E_TC7_WO1 (_UL_(1) << 21) +#define PIN_PB01E_TC7_WO1 _L_(33) /**< \brief TC7 signal: WO1 on PB01 mux E */ +#define MUX_PB01E_TC7_WO1 _L_(4) +#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1) +#define PORT_PB01E_TC7_WO1 (_UL_(1) << 1) +#define PIN_PB23E_TC7_WO1 _L_(55) /**< \brief TC7 signal: WO1 on PB23 mux E */ +#define MUX_PB23E_TC7_WO1 _L_(4) +#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1) +#define PORT_PB23E_TC7_WO1 (_UL_(1) << 23) +/* ========== PORT definition for ADC0 peripheral ========== */ +#define PIN_PA02B_ADC0_AIN0 _L_(2) /**< \brief ADC0 signal: AIN0 on PA02 mux B */ +#define MUX_PA02B_ADC0_AIN0 _L_(1) +#define PINMUX_PA02B_ADC0_AIN0 ((PIN_PA02B_ADC0_AIN0 << 16) | MUX_PA02B_ADC0_AIN0) +#define PORT_PA02B_ADC0_AIN0 (_UL_(1) << 2) +#define PIN_PA03B_ADC0_AIN1 _L_(3) /**< \brief ADC0 signal: AIN1 on PA03 mux B */ +#define MUX_PA03B_ADC0_AIN1 _L_(1) +#define PINMUX_PA03B_ADC0_AIN1 ((PIN_PA03B_ADC0_AIN1 << 16) | MUX_PA03B_ADC0_AIN1) +#define PORT_PA03B_ADC0_AIN1 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_AIN2 _L_(40) /**< \brief ADC0 signal: AIN2 on PB08 mux B */ +#define MUX_PB08B_ADC0_AIN2 _L_(1) +#define PINMUX_PB08B_ADC0_AIN2 ((PIN_PB08B_ADC0_AIN2 << 16) | MUX_PB08B_ADC0_AIN2) +#define PORT_PB08B_ADC0_AIN2 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_AIN3 _L_(41) /**< \brief ADC0 signal: AIN3 on PB09 mux B */ +#define MUX_PB09B_ADC0_AIN3 _L_(1) +#define PINMUX_PB09B_ADC0_AIN3 ((PIN_PB09B_ADC0_AIN3 << 16) | MUX_PB09B_ADC0_AIN3) +#define PORT_PB09B_ADC0_AIN3 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_AIN4 _L_(4) /**< \brief ADC0 signal: AIN4 on PA04 mux B */ +#define MUX_PA04B_ADC0_AIN4 _L_(1) +#define PINMUX_PA04B_ADC0_AIN4 ((PIN_PA04B_ADC0_AIN4 << 16) | MUX_PA04B_ADC0_AIN4) +#define PORT_PA04B_ADC0_AIN4 (_UL_(1) << 4) +#define PIN_PA05B_ADC0_AIN5 _L_(5) /**< \brief ADC0 signal: AIN5 on PA05 mux B */ +#define MUX_PA05B_ADC0_AIN5 _L_(1) +#define PINMUX_PA05B_ADC0_AIN5 ((PIN_PA05B_ADC0_AIN5 << 16) | MUX_PA05B_ADC0_AIN5) +#define PORT_PA05B_ADC0_AIN5 (_UL_(1) << 5) +#define PIN_PA06B_ADC0_AIN6 _L_(6) /**< \brief ADC0 signal: AIN6 on PA06 mux B */ +#define MUX_PA06B_ADC0_AIN6 _L_(1) +#define PINMUX_PA06B_ADC0_AIN6 ((PIN_PA06B_ADC0_AIN6 << 16) | MUX_PA06B_ADC0_AIN6) +#define PORT_PA06B_ADC0_AIN6 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_AIN7 _L_(7) /**< \brief ADC0 signal: AIN7 on PA07 mux B */ +#define MUX_PA07B_ADC0_AIN7 _L_(1) +#define PINMUX_PA07B_ADC0_AIN7 ((PIN_PA07B_ADC0_AIN7 << 16) | MUX_PA07B_ADC0_AIN7) +#define PORT_PA07B_ADC0_AIN7 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_AIN8 _L_(8) /**< \brief ADC0 signal: AIN8 on PA08 mux B */ +#define MUX_PA08B_ADC0_AIN8 _L_(1) +#define PINMUX_PA08B_ADC0_AIN8 ((PIN_PA08B_ADC0_AIN8 << 16) | MUX_PA08B_ADC0_AIN8) +#define PORT_PA08B_ADC0_AIN8 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_AIN9 _L_(9) /**< \brief ADC0 signal: AIN9 on PA09 mux B */ +#define MUX_PA09B_ADC0_AIN9 _L_(1) +#define PINMUX_PA09B_ADC0_AIN9 ((PIN_PA09B_ADC0_AIN9 << 16) | MUX_PA09B_ADC0_AIN9) +#define PORT_PA09B_ADC0_AIN9 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_AIN10 _L_(10) /**< \brief ADC0 signal: AIN10 on PA10 mux B */ +#define MUX_PA10B_ADC0_AIN10 _L_(1) +#define PINMUX_PA10B_ADC0_AIN10 ((PIN_PA10B_ADC0_AIN10 << 16) | MUX_PA10B_ADC0_AIN10) +#define PORT_PA10B_ADC0_AIN10 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_AIN11 _L_(11) /**< \brief ADC0 signal: AIN11 on PA11 mux B */ +#define MUX_PA11B_ADC0_AIN11 _L_(1) +#define PINMUX_PA11B_ADC0_AIN11 ((PIN_PA11B_ADC0_AIN11 << 16) | MUX_PA11B_ADC0_AIN11) +#define PORT_PA11B_ADC0_AIN11 (_UL_(1) << 11) +#define PIN_PB00B_ADC0_AIN12 _L_(32) /**< \brief ADC0 signal: AIN12 on PB00 mux B */ +#define MUX_PB00B_ADC0_AIN12 _L_(1) +#define PINMUX_PB00B_ADC0_AIN12 ((PIN_PB00B_ADC0_AIN12 << 16) | MUX_PB00B_ADC0_AIN12) +#define PORT_PB00B_ADC0_AIN12 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_AIN13 _L_(33) /**< \brief ADC0 signal: AIN13 on PB01 mux B */ +#define MUX_PB01B_ADC0_AIN13 _L_(1) +#define PINMUX_PB01B_ADC0_AIN13 ((PIN_PB01B_ADC0_AIN13 << 16) | MUX_PB01B_ADC0_AIN13) +#define PORT_PB01B_ADC0_AIN13 (_UL_(1) << 1) +#define PIN_PB02B_ADC0_AIN14 _L_(34) /**< \brief ADC0 signal: AIN14 on PB02 mux B */ +#define MUX_PB02B_ADC0_AIN14 _L_(1) +#define PINMUX_PB02B_ADC0_AIN14 ((PIN_PB02B_ADC0_AIN14 << 16) | MUX_PB02B_ADC0_AIN14) +#define PORT_PB02B_ADC0_AIN14 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_AIN15 _L_(35) /**< \brief ADC0 signal: AIN15 on PB03 mux B */ +#define MUX_PB03B_ADC0_AIN15 _L_(1) +#define PINMUX_PB03B_ADC0_AIN15 ((PIN_PB03B_ADC0_AIN15 << 16) | MUX_PB03B_ADC0_AIN15) +#define PORT_PB03B_ADC0_AIN15 (_UL_(1) << 3) +#define PIN_PA03O_ADC0_DRV0 _L_(3) /**< \brief ADC0 signal: DRV0 on PA03 mux O */ +#define MUX_PA03O_ADC0_DRV0 _L_(14) +#define PINMUX_PA03O_ADC0_DRV0 ((PIN_PA03O_ADC0_DRV0 << 16) | MUX_PA03O_ADC0_DRV0) +#define PORT_PA03O_ADC0_DRV0 (_UL_(1) << 3) +#define PIN_PB08O_ADC0_DRV1 _L_(40) /**< \brief ADC0 signal: DRV1 on PB08 mux O */ +#define MUX_PB08O_ADC0_DRV1 _L_(14) +#define PINMUX_PB08O_ADC0_DRV1 ((PIN_PB08O_ADC0_DRV1 << 16) | MUX_PB08O_ADC0_DRV1) +#define PORT_PB08O_ADC0_DRV1 (_UL_(1) << 8) +#define PIN_PB09O_ADC0_DRV2 _L_(41) /**< \brief ADC0 signal: DRV2 on PB09 mux O */ +#define MUX_PB09O_ADC0_DRV2 _L_(14) +#define PINMUX_PB09O_ADC0_DRV2 ((PIN_PB09O_ADC0_DRV2 << 16) | MUX_PB09O_ADC0_DRV2) +#define PORT_PB09O_ADC0_DRV2 (_UL_(1) << 9) +#define PIN_PA04O_ADC0_DRV3 _L_(4) /**< \brief ADC0 signal: DRV3 on PA04 mux O */ +#define MUX_PA04O_ADC0_DRV3 _L_(14) +#define PINMUX_PA04O_ADC0_DRV3 ((PIN_PA04O_ADC0_DRV3 << 16) | MUX_PA04O_ADC0_DRV3) +#define PORT_PA04O_ADC0_DRV3 (_UL_(1) << 4) +#define PIN_PA06O_ADC0_DRV4 _L_(6) /**< \brief ADC0 signal: DRV4 on PA06 mux O */ +#define MUX_PA06O_ADC0_DRV4 _L_(14) +#define PINMUX_PA06O_ADC0_DRV4 ((PIN_PA06O_ADC0_DRV4 << 16) | MUX_PA06O_ADC0_DRV4) +#define PORT_PA06O_ADC0_DRV4 (_UL_(1) << 6) +#define PIN_PA07O_ADC0_DRV5 _L_(7) /**< \brief ADC0 signal: DRV5 on PA07 mux O */ +#define MUX_PA07O_ADC0_DRV5 _L_(14) +#define PINMUX_PA07O_ADC0_DRV5 ((PIN_PA07O_ADC0_DRV5 << 16) | MUX_PA07O_ADC0_DRV5) +#define PORT_PA07O_ADC0_DRV5 (_UL_(1) << 7) +#define PIN_PA08O_ADC0_DRV6 _L_(8) /**< \brief ADC0 signal: DRV6 on PA08 mux O */ +#define MUX_PA08O_ADC0_DRV6 _L_(14) +#define PINMUX_PA08O_ADC0_DRV6 ((PIN_PA08O_ADC0_DRV6 << 16) | MUX_PA08O_ADC0_DRV6) +#define PORT_PA08O_ADC0_DRV6 (_UL_(1) << 8) +#define PIN_PA09O_ADC0_DRV7 _L_(9) /**< \brief ADC0 signal: DRV7 on PA09 mux O */ +#define MUX_PA09O_ADC0_DRV7 _L_(14) +#define PINMUX_PA09O_ADC0_DRV7 ((PIN_PA09O_ADC0_DRV7 << 16) | MUX_PA09O_ADC0_DRV7) +#define PORT_PA09O_ADC0_DRV7 (_UL_(1) << 9) +#define PIN_PA10O_ADC0_DRV8 _L_(10) /**< \brief ADC0 signal: DRV8 on PA10 mux O */ +#define MUX_PA10O_ADC0_DRV8 _L_(14) +#define PINMUX_PA10O_ADC0_DRV8 ((PIN_PA10O_ADC0_DRV8 << 16) | MUX_PA10O_ADC0_DRV8) +#define PORT_PA10O_ADC0_DRV8 (_UL_(1) << 10) +#define PIN_PA11O_ADC0_DRV9 _L_(11) /**< \brief ADC0 signal: DRV9 on PA11 mux O */ +#define MUX_PA11O_ADC0_DRV9 _L_(14) +#define PINMUX_PA11O_ADC0_DRV9 ((PIN_PA11O_ADC0_DRV9 << 16) | MUX_PA11O_ADC0_DRV9) +#define PORT_PA11O_ADC0_DRV9 (_UL_(1) << 11) +#define PIN_PA16O_ADC0_DRV10 _L_(16) /**< \brief ADC0 signal: DRV10 on PA16 mux O */ +#define MUX_PA16O_ADC0_DRV10 _L_(14) +#define PINMUX_PA16O_ADC0_DRV10 ((PIN_PA16O_ADC0_DRV10 << 16) | MUX_PA16O_ADC0_DRV10) +#define PORT_PA16O_ADC0_DRV10 (_UL_(1) << 16) +#define PIN_PA17O_ADC0_DRV11 _L_(17) /**< \brief ADC0 signal: DRV11 on PA17 mux O */ +#define MUX_PA17O_ADC0_DRV11 _L_(14) +#define PINMUX_PA17O_ADC0_DRV11 ((PIN_PA17O_ADC0_DRV11 << 16) | MUX_PA17O_ADC0_DRV11) +#define PORT_PA17O_ADC0_DRV11 (_UL_(1) << 17) +#define PIN_PA18O_ADC0_DRV12 _L_(18) /**< \brief ADC0 signal: DRV12 on PA18 mux O */ +#define MUX_PA18O_ADC0_DRV12 _L_(14) +#define PINMUX_PA18O_ADC0_DRV12 ((PIN_PA18O_ADC0_DRV12 << 16) | MUX_PA18O_ADC0_DRV12) +#define PORT_PA18O_ADC0_DRV12 (_UL_(1) << 18) +#define PIN_PA19O_ADC0_DRV13 _L_(19) /**< \brief ADC0 signal: DRV13 on PA19 mux O */ +#define MUX_PA19O_ADC0_DRV13 _L_(14) +#define PINMUX_PA19O_ADC0_DRV13 ((PIN_PA19O_ADC0_DRV13 << 16) | MUX_PA19O_ADC0_DRV13) +#define PORT_PA19O_ADC0_DRV13 (_UL_(1) << 19) +#define PIN_PA20O_ADC0_DRV14 _L_(20) /**< \brief ADC0 signal: DRV14 on PA20 mux O */ +#define MUX_PA20O_ADC0_DRV14 _L_(14) +#define PINMUX_PA20O_ADC0_DRV14 ((PIN_PA20O_ADC0_DRV14 << 16) | MUX_PA20O_ADC0_DRV14) +#define PORT_PA20O_ADC0_DRV14 (_UL_(1) << 20) +#define PIN_PA21O_ADC0_DRV15 _L_(21) /**< \brief ADC0 signal: DRV15 on PA21 mux O */ +#define MUX_PA21O_ADC0_DRV15 _L_(14) +#define PINMUX_PA21O_ADC0_DRV15 ((PIN_PA21O_ADC0_DRV15 << 16) | MUX_PA21O_ADC0_DRV15) +#define PORT_PA21O_ADC0_DRV15 (_UL_(1) << 21) +#define PIN_PA22O_ADC0_DRV16 _L_(22) /**< \brief ADC0 signal: DRV16 on PA22 mux O */ +#define MUX_PA22O_ADC0_DRV16 _L_(14) +#define PINMUX_PA22O_ADC0_DRV16 ((PIN_PA22O_ADC0_DRV16 << 16) | MUX_PA22O_ADC0_DRV16) +#define PORT_PA22O_ADC0_DRV16 (_UL_(1) << 22) +#define PIN_PA23O_ADC0_DRV17 _L_(23) /**< \brief ADC0 signal: DRV17 on PA23 mux O */ +#define MUX_PA23O_ADC0_DRV17 _L_(14) +#define PINMUX_PA23O_ADC0_DRV17 ((PIN_PA23O_ADC0_DRV17 << 16) | MUX_PA23O_ADC0_DRV17) +#define PORT_PA23O_ADC0_DRV17 (_UL_(1) << 23) +#define PIN_PA27O_ADC0_DRV18 _L_(27) /**< \brief ADC0 signal: DRV18 on PA27 mux O */ +#define MUX_PA27O_ADC0_DRV18 _L_(14) +#define PINMUX_PA27O_ADC0_DRV18 ((PIN_PA27O_ADC0_DRV18 << 16) | MUX_PA27O_ADC0_DRV18) +#define PORT_PA27O_ADC0_DRV18 (_UL_(1) << 27) +#define PIN_PA30O_ADC0_DRV19 _L_(30) /**< \brief ADC0 signal: DRV19 on PA30 mux O */ +#define MUX_PA30O_ADC0_DRV19 _L_(14) +#define PINMUX_PA30O_ADC0_DRV19 ((PIN_PA30O_ADC0_DRV19 << 16) | MUX_PA30O_ADC0_DRV19) +#define PORT_PA30O_ADC0_DRV19 (_UL_(1) << 30) +#define PIN_PB02O_ADC0_DRV20 _L_(34) /**< \brief ADC0 signal: DRV20 on PB02 mux O */ +#define MUX_PB02O_ADC0_DRV20 _L_(14) +#define PINMUX_PB02O_ADC0_DRV20 ((PIN_PB02O_ADC0_DRV20 << 16) | MUX_PB02O_ADC0_DRV20) +#define PORT_PB02O_ADC0_DRV20 (_UL_(1) << 2) +#define PIN_PB03O_ADC0_DRV21 _L_(35) /**< \brief ADC0 signal: DRV21 on PB03 mux O */ +#define MUX_PB03O_ADC0_DRV21 _L_(14) +#define PINMUX_PB03O_ADC0_DRV21 ((PIN_PB03O_ADC0_DRV21 << 16) | MUX_PB03O_ADC0_DRV21) +#define PORT_PB03O_ADC0_DRV21 (_UL_(1) << 3) +#define PIN_PB04O_ADC0_DRV22 _L_(36) /**< \brief ADC0 signal: DRV22 on PB04 mux O */ +#define MUX_PB04O_ADC0_DRV22 _L_(14) +#define PINMUX_PB04O_ADC0_DRV22 ((PIN_PB04O_ADC0_DRV22 << 16) | MUX_PB04O_ADC0_DRV22) +#define PORT_PB04O_ADC0_DRV22 (_UL_(1) << 4) +#define PIN_PB05O_ADC0_DRV23 _L_(37) /**< \brief ADC0 signal: DRV23 on PB05 mux O */ +#define MUX_PB05O_ADC0_DRV23 _L_(14) +#define PINMUX_PB05O_ADC0_DRV23 ((PIN_PB05O_ADC0_DRV23 << 16) | MUX_PB05O_ADC0_DRV23) +#define PORT_PB05O_ADC0_DRV23 (_UL_(1) << 5) +#define PIN_PB06O_ADC0_DRV24 _L_(38) /**< \brief ADC0 signal: DRV24 on PB06 mux O */ +#define MUX_PB06O_ADC0_DRV24 _L_(14) +#define PINMUX_PB06O_ADC0_DRV24 ((PIN_PB06O_ADC0_DRV24 << 16) | MUX_PB06O_ADC0_DRV24) +#define PORT_PB06O_ADC0_DRV24 (_UL_(1) << 6) +#define PIN_PB07O_ADC0_DRV25 _L_(39) /**< \brief ADC0 signal: DRV25 on PB07 mux O */ +#define MUX_PB07O_ADC0_DRV25 _L_(14) +#define PINMUX_PB07O_ADC0_DRV25 ((PIN_PB07O_ADC0_DRV25 << 16) | MUX_PB07O_ADC0_DRV25) +#define PORT_PB07O_ADC0_DRV25 (_UL_(1) << 7) +#define PIN_PB12O_ADC0_DRV26 _L_(44) /**< \brief ADC0 signal: DRV26 on PB12 mux O */ +#define MUX_PB12O_ADC0_DRV26 _L_(14) +#define PINMUX_PB12O_ADC0_DRV26 ((PIN_PB12O_ADC0_DRV26 << 16) | MUX_PB12O_ADC0_DRV26) +#define PORT_PB12O_ADC0_DRV26 (_UL_(1) << 12) +#define PIN_PB13O_ADC0_DRV27 _L_(45) /**< \brief ADC0 signal: DRV27 on PB13 mux O */ +#define MUX_PB13O_ADC0_DRV27 _L_(14) +#define PINMUX_PB13O_ADC0_DRV27 ((PIN_PB13O_ADC0_DRV27 << 16) | MUX_PB13O_ADC0_DRV27) +#define PORT_PB13O_ADC0_DRV27 (_UL_(1) << 13) +#define PIN_PB14O_ADC0_DRV28 _L_(46) /**< \brief ADC0 signal: DRV28 on PB14 mux O */ +#define MUX_PB14O_ADC0_DRV28 _L_(14) +#define PINMUX_PB14O_ADC0_DRV28 ((PIN_PB14O_ADC0_DRV28 << 16) | MUX_PB14O_ADC0_DRV28) +#define PORT_PB14O_ADC0_DRV28 (_UL_(1) << 14) +#define PIN_PB15O_ADC0_DRV29 _L_(47) /**< \brief ADC0 signal: DRV29 on PB15 mux O */ +#define MUX_PB15O_ADC0_DRV29 _L_(14) +#define PINMUX_PB15O_ADC0_DRV29 ((PIN_PB15O_ADC0_DRV29 << 16) | MUX_PB15O_ADC0_DRV29) +#define PORT_PB15O_ADC0_DRV29 (_UL_(1) << 15) +#define PIN_PB00O_ADC0_DRV30 _L_(32) /**< \brief ADC0 signal: DRV30 on PB00 mux O */ +#define MUX_PB00O_ADC0_DRV30 _L_(14) +#define PINMUX_PB00O_ADC0_DRV30 ((PIN_PB00O_ADC0_DRV30 << 16) | MUX_PB00O_ADC0_DRV30) +#define PORT_PB00O_ADC0_DRV30 (_UL_(1) << 0) +#define PIN_PB01O_ADC0_DRV31 _L_(33) /**< \brief ADC0 signal: DRV31 on PB01 mux O */ +#define MUX_PB01O_ADC0_DRV31 _L_(14) +#define PINMUX_PB01O_ADC0_DRV31 ((PIN_PB01O_ADC0_DRV31 << 16) | MUX_PB01O_ADC0_DRV31) +#define PORT_PB01O_ADC0_DRV31 (_UL_(1) << 1) +#define PIN_PA03B_ADC0_PTCXY0 _L_(3) /**< \brief ADC0 signal: PTCXY0 on PA03 mux B */ +#define MUX_PA03B_ADC0_PTCXY0 _L_(1) +#define PINMUX_PA03B_ADC0_PTCXY0 ((PIN_PA03B_ADC0_PTCXY0 << 16) | MUX_PA03B_ADC0_PTCXY0) +#define PORT_PA03B_ADC0_PTCXY0 (_UL_(1) << 3) +#define PIN_PB08B_ADC0_PTCXY1 _L_(40) /**< \brief ADC0 signal: PTCXY1 on PB08 mux B */ +#define MUX_PB08B_ADC0_PTCXY1 _L_(1) +#define PINMUX_PB08B_ADC0_PTCXY1 ((PIN_PB08B_ADC0_PTCXY1 << 16) | MUX_PB08B_ADC0_PTCXY1) +#define PORT_PB08B_ADC0_PTCXY1 (_UL_(1) << 8) +#define PIN_PB09B_ADC0_PTCXY2 _L_(41) /**< \brief ADC0 signal: PTCXY2 on PB09 mux B */ +#define MUX_PB09B_ADC0_PTCXY2 _L_(1) +#define PINMUX_PB09B_ADC0_PTCXY2 ((PIN_PB09B_ADC0_PTCXY2 << 16) | MUX_PB09B_ADC0_PTCXY2) +#define PORT_PB09B_ADC0_PTCXY2 (_UL_(1) << 9) +#define PIN_PA04B_ADC0_PTCXY3 _L_(4) /**< \brief ADC0 signal: PTCXY3 on PA04 mux B */ +#define MUX_PA04B_ADC0_PTCXY3 _L_(1) +#define PINMUX_PA04B_ADC0_PTCXY3 ((PIN_PA04B_ADC0_PTCXY3 << 16) | MUX_PA04B_ADC0_PTCXY3) +#define PORT_PA04B_ADC0_PTCXY3 (_UL_(1) << 4) +#define PIN_PA06B_ADC0_PTCXY4 _L_(6) /**< \brief ADC0 signal: PTCXY4 on PA06 mux B */ +#define MUX_PA06B_ADC0_PTCXY4 _L_(1) +#define PINMUX_PA06B_ADC0_PTCXY4 ((PIN_PA06B_ADC0_PTCXY4 << 16) | MUX_PA06B_ADC0_PTCXY4) +#define PORT_PA06B_ADC0_PTCXY4 (_UL_(1) << 6) +#define PIN_PA07B_ADC0_PTCXY5 _L_(7) /**< \brief ADC0 signal: PTCXY5 on PA07 mux B */ +#define MUX_PA07B_ADC0_PTCXY5 _L_(1) +#define PINMUX_PA07B_ADC0_PTCXY5 ((PIN_PA07B_ADC0_PTCXY5 << 16) | MUX_PA07B_ADC0_PTCXY5) +#define PORT_PA07B_ADC0_PTCXY5 (_UL_(1) << 7) +#define PIN_PA08B_ADC0_PTCXY6 _L_(8) /**< \brief ADC0 signal: PTCXY6 on PA08 mux B */ +#define MUX_PA08B_ADC0_PTCXY6 _L_(1) +#define PINMUX_PA08B_ADC0_PTCXY6 ((PIN_PA08B_ADC0_PTCXY6 << 16) | MUX_PA08B_ADC0_PTCXY6) +#define PORT_PA08B_ADC0_PTCXY6 (_UL_(1) << 8) +#define PIN_PA09B_ADC0_PTCXY7 _L_(9) /**< \brief ADC0 signal: PTCXY7 on PA09 mux B */ +#define MUX_PA09B_ADC0_PTCXY7 _L_(1) +#define PINMUX_PA09B_ADC0_PTCXY7 ((PIN_PA09B_ADC0_PTCXY7 << 16) | MUX_PA09B_ADC0_PTCXY7) +#define PORT_PA09B_ADC0_PTCXY7 (_UL_(1) << 9) +#define PIN_PA10B_ADC0_PTCXY8 _L_(10) /**< \brief ADC0 signal: PTCXY8 on PA10 mux B */ +#define MUX_PA10B_ADC0_PTCXY8 _L_(1) +#define PINMUX_PA10B_ADC0_PTCXY8 ((PIN_PA10B_ADC0_PTCXY8 << 16) | MUX_PA10B_ADC0_PTCXY8) +#define PORT_PA10B_ADC0_PTCXY8 (_UL_(1) << 10) +#define PIN_PA11B_ADC0_PTCXY9 _L_(11) /**< \brief ADC0 signal: PTCXY9 on PA11 mux B */ +#define MUX_PA11B_ADC0_PTCXY9 _L_(1) +#define PINMUX_PA11B_ADC0_PTCXY9 ((PIN_PA11B_ADC0_PTCXY9 << 16) | MUX_PA11B_ADC0_PTCXY9) +#define PORT_PA11B_ADC0_PTCXY9 (_UL_(1) << 11) +#define PIN_PA16B_ADC0_PTCXY10 _L_(16) /**< \brief ADC0 signal: PTCXY10 on PA16 mux B */ +#define MUX_PA16B_ADC0_PTCXY10 _L_(1) +#define PINMUX_PA16B_ADC0_PTCXY10 ((PIN_PA16B_ADC0_PTCXY10 << 16) | MUX_PA16B_ADC0_PTCXY10) +#define PORT_PA16B_ADC0_PTCXY10 (_UL_(1) << 16) +#define PIN_PA17B_ADC0_PTCXY11 _L_(17) /**< \brief ADC0 signal: PTCXY11 on PA17 mux B */ +#define MUX_PA17B_ADC0_PTCXY11 _L_(1) +#define PINMUX_PA17B_ADC0_PTCXY11 ((PIN_PA17B_ADC0_PTCXY11 << 16) | MUX_PA17B_ADC0_PTCXY11) +#define PORT_PA17B_ADC0_PTCXY11 (_UL_(1) << 17) +#define PIN_PA18B_ADC0_PTCXY12 _L_(18) /**< \brief ADC0 signal: PTCXY12 on PA18 mux B */ +#define MUX_PA18B_ADC0_PTCXY12 _L_(1) +#define PINMUX_PA18B_ADC0_PTCXY12 ((PIN_PA18B_ADC0_PTCXY12 << 16) | MUX_PA18B_ADC0_PTCXY12) +#define PORT_PA18B_ADC0_PTCXY12 (_UL_(1) << 18) +#define PIN_PA19B_ADC0_PTCXY13 _L_(19) /**< \brief ADC0 signal: PTCXY13 on PA19 mux B */ +#define MUX_PA19B_ADC0_PTCXY13 _L_(1) +#define PINMUX_PA19B_ADC0_PTCXY13 ((PIN_PA19B_ADC0_PTCXY13 << 16) | MUX_PA19B_ADC0_PTCXY13) +#define PORT_PA19B_ADC0_PTCXY13 (_UL_(1) << 19) +#define PIN_PA20B_ADC0_PTCXY14 _L_(20) /**< \brief ADC0 signal: PTCXY14 on PA20 mux B */ +#define MUX_PA20B_ADC0_PTCXY14 _L_(1) +#define PINMUX_PA20B_ADC0_PTCXY14 ((PIN_PA20B_ADC0_PTCXY14 << 16) | MUX_PA20B_ADC0_PTCXY14) +#define PORT_PA20B_ADC0_PTCXY14 (_UL_(1) << 20) +#define PIN_PA21B_ADC0_PTCXY15 _L_(21) /**< \brief ADC0 signal: PTCXY15 on PA21 mux B */ +#define MUX_PA21B_ADC0_PTCXY15 _L_(1) +#define PINMUX_PA21B_ADC0_PTCXY15 ((PIN_PA21B_ADC0_PTCXY15 << 16) | MUX_PA21B_ADC0_PTCXY15) +#define PORT_PA21B_ADC0_PTCXY15 (_UL_(1) << 21) +#define PIN_PA22B_ADC0_PTCXY16 _L_(22) /**< \brief ADC0 signal: PTCXY16 on PA22 mux B */ +#define MUX_PA22B_ADC0_PTCXY16 _L_(1) +#define PINMUX_PA22B_ADC0_PTCXY16 ((PIN_PA22B_ADC0_PTCXY16 << 16) | MUX_PA22B_ADC0_PTCXY16) +#define PORT_PA22B_ADC0_PTCXY16 (_UL_(1) << 22) +#define PIN_PA23B_ADC0_PTCXY17 _L_(23) /**< \brief ADC0 signal: PTCXY17 on PA23 mux B */ +#define MUX_PA23B_ADC0_PTCXY17 _L_(1) +#define PINMUX_PA23B_ADC0_PTCXY17 ((PIN_PA23B_ADC0_PTCXY17 << 16) | MUX_PA23B_ADC0_PTCXY17) +#define PORT_PA23B_ADC0_PTCXY17 (_UL_(1) << 23) +#define PIN_PA27B_ADC0_PTCXY18 _L_(27) /**< \brief ADC0 signal: PTCXY18 on PA27 mux B */ +#define MUX_PA27B_ADC0_PTCXY18 _L_(1) +#define PINMUX_PA27B_ADC0_PTCXY18 ((PIN_PA27B_ADC0_PTCXY18 << 16) | MUX_PA27B_ADC0_PTCXY18) +#define PORT_PA27B_ADC0_PTCXY18 (_UL_(1) << 27) +#define PIN_PA30B_ADC0_PTCXY19 _L_(30) /**< \brief ADC0 signal: PTCXY19 on PA30 mux B */ +#define MUX_PA30B_ADC0_PTCXY19 _L_(1) +#define PINMUX_PA30B_ADC0_PTCXY19 ((PIN_PA30B_ADC0_PTCXY19 << 16) | MUX_PA30B_ADC0_PTCXY19) +#define PORT_PA30B_ADC0_PTCXY19 (_UL_(1) << 30) +#define PIN_PB02B_ADC0_PTCXY20 _L_(34) /**< \brief ADC0 signal: PTCXY20 on PB02 mux B */ +#define MUX_PB02B_ADC0_PTCXY20 _L_(1) +#define PINMUX_PB02B_ADC0_PTCXY20 ((PIN_PB02B_ADC0_PTCXY20 << 16) | MUX_PB02B_ADC0_PTCXY20) +#define PORT_PB02B_ADC0_PTCXY20 (_UL_(1) << 2) +#define PIN_PB03B_ADC0_PTCXY21 _L_(35) /**< \brief ADC0 signal: PTCXY21 on PB03 mux B */ +#define MUX_PB03B_ADC0_PTCXY21 _L_(1) +#define PINMUX_PB03B_ADC0_PTCXY21 ((PIN_PB03B_ADC0_PTCXY21 << 16) | MUX_PB03B_ADC0_PTCXY21) +#define PORT_PB03B_ADC0_PTCXY21 (_UL_(1) << 3) +#define PIN_PB04B_ADC0_PTCXY22 _L_(36) /**< \brief ADC0 signal: PTCXY22 on PB04 mux B */ +#define MUX_PB04B_ADC0_PTCXY22 _L_(1) +#define PINMUX_PB04B_ADC0_PTCXY22 ((PIN_PB04B_ADC0_PTCXY22 << 16) | MUX_PB04B_ADC0_PTCXY22) +#define PORT_PB04B_ADC0_PTCXY22 (_UL_(1) << 4) +#define PIN_PB05B_ADC0_PTCXY23 _L_(37) /**< \brief ADC0 signal: PTCXY23 on PB05 mux B */ +#define MUX_PB05B_ADC0_PTCXY23 _L_(1) +#define PINMUX_PB05B_ADC0_PTCXY23 ((PIN_PB05B_ADC0_PTCXY23 << 16) | MUX_PB05B_ADC0_PTCXY23) +#define PORT_PB05B_ADC0_PTCXY23 (_UL_(1) << 5) +#define PIN_PB06B_ADC0_PTCXY24 _L_(38) /**< \brief ADC0 signal: PTCXY24 on PB06 mux B */ +#define MUX_PB06B_ADC0_PTCXY24 _L_(1) +#define PINMUX_PB06B_ADC0_PTCXY24 ((PIN_PB06B_ADC0_PTCXY24 << 16) | MUX_PB06B_ADC0_PTCXY24) +#define PORT_PB06B_ADC0_PTCXY24 (_UL_(1) << 6) +#define PIN_PB07B_ADC0_PTCXY25 _L_(39) /**< \brief ADC0 signal: PTCXY25 on PB07 mux B */ +#define MUX_PB07B_ADC0_PTCXY25 _L_(1) +#define PINMUX_PB07B_ADC0_PTCXY25 ((PIN_PB07B_ADC0_PTCXY25 << 16) | MUX_PB07B_ADC0_PTCXY25) +#define PORT_PB07B_ADC0_PTCXY25 (_UL_(1) << 7) +#define PIN_PB12B_ADC0_PTCXY26 _L_(44) /**< \brief ADC0 signal: PTCXY26 on PB12 mux B */ +#define MUX_PB12B_ADC0_PTCXY26 _L_(1) +#define PINMUX_PB12B_ADC0_PTCXY26 ((PIN_PB12B_ADC0_PTCXY26 << 16) | MUX_PB12B_ADC0_PTCXY26) +#define PORT_PB12B_ADC0_PTCXY26 (_UL_(1) << 12) +#define PIN_PB13B_ADC0_PTCXY27 _L_(45) /**< \brief ADC0 signal: PTCXY27 on PB13 mux B */ +#define MUX_PB13B_ADC0_PTCXY27 _L_(1) +#define PINMUX_PB13B_ADC0_PTCXY27 ((PIN_PB13B_ADC0_PTCXY27 << 16) | MUX_PB13B_ADC0_PTCXY27) +#define PORT_PB13B_ADC0_PTCXY27 (_UL_(1) << 13) +#define PIN_PB14B_ADC0_PTCXY28 _L_(46) /**< \brief ADC0 signal: PTCXY28 on PB14 mux B */ +#define MUX_PB14B_ADC0_PTCXY28 _L_(1) +#define PINMUX_PB14B_ADC0_PTCXY28 ((PIN_PB14B_ADC0_PTCXY28 << 16) | MUX_PB14B_ADC0_PTCXY28) +#define PORT_PB14B_ADC0_PTCXY28 (_UL_(1) << 14) +#define PIN_PB15B_ADC0_PTCXY29 _L_(47) /**< \brief ADC0 signal: PTCXY29 on PB15 mux B */ +#define MUX_PB15B_ADC0_PTCXY29 _L_(1) +#define PINMUX_PB15B_ADC0_PTCXY29 ((PIN_PB15B_ADC0_PTCXY29 << 16) | MUX_PB15B_ADC0_PTCXY29) +#define PORT_PB15B_ADC0_PTCXY29 (_UL_(1) << 15) +#define PIN_PB00B_ADC0_PTCXY30 _L_(32) /**< \brief ADC0 signal: PTCXY30 on PB00 mux B */ +#define MUX_PB00B_ADC0_PTCXY30 _L_(1) +#define PINMUX_PB00B_ADC0_PTCXY30 ((PIN_PB00B_ADC0_PTCXY30 << 16) | MUX_PB00B_ADC0_PTCXY30) +#define PORT_PB00B_ADC0_PTCXY30 (_UL_(1) << 0) +#define PIN_PB01B_ADC0_PTCXY31 _L_(33) /**< \brief ADC0 signal: PTCXY31 on PB01 mux B */ +#define MUX_PB01B_ADC0_PTCXY31 _L_(1) +#define PINMUX_PB01B_ADC0_PTCXY31 ((PIN_PB01B_ADC0_PTCXY31 << 16) | MUX_PB01B_ADC0_PTCXY31) +#define PORT_PB01B_ADC0_PTCXY31 (_UL_(1) << 1) +/* ========== PORT definition for ADC1 peripheral ========== */ +#define PIN_PB08B_ADC1_AIN0 _L_(40) /**< \brief ADC1 signal: AIN0 on PB08 mux B */ +#define MUX_PB08B_ADC1_AIN0 _L_(1) +#define PINMUX_PB08B_ADC1_AIN0 ((PIN_PB08B_ADC1_AIN0 << 16) | MUX_PB08B_ADC1_AIN0) +#define PORT_PB08B_ADC1_AIN0 (_UL_(1) << 8) +#define PIN_PB09B_ADC1_AIN1 _L_(41) /**< \brief ADC1 signal: AIN1 on PB09 mux B */ +#define MUX_PB09B_ADC1_AIN1 _L_(1) +#define PINMUX_PB09B_ADC1_AIN1 ((PIN_PB09B_ADC1_AIN1 << 16) | MUX_PB09B_ADC1_AIN1) +#define PORT_PB09B_ADC1_AIN1 (_UL_(1) << 9) +#define PIN_PA08B_ADC1_AIN2 _L_(8) /**< \brief ADC1 signal: AIN2 on PA08 mux B */ +#define MUX_PA08B_ADC1_AIN2 _L_(1) +#define PINMUX_PA08B_ADC1_AIN2 ((PIN_PA08B_ADC1_AIN2 << 16) | MUX_PA08B_ADC1_AIN2) +#define PORT_PA08B_ADC1_AIN2 (_UL_(1) << 8) +#define PIN_PA09B_ADC1_AIN3 _L_(9) /**< \brief ADC1 signal: AIN3 on PA09 mux B */ +#define MUX_PA09B_ADC1_AIN3 _L_(1) +#define PINMUX_PA09B_ADC1_AIN3 ((PIN_PA09B_ADC1_AIN3 << 16) | MUX_PA09B_ADC1_AIN3) +#define PORT_PA09B_ADC1_AIN3 (_UL_(1) << 9) +#define PIN_PC02B_ADC1_AIN4 _L_(66) /**< \brief ADC1 signal: AIN4 on PC02 mux B */ +#define MUX_PC02B_ADC1_AIN4 _L_(1) +#define PINMUX_PC02B_ADC1_AIN4 ((PIN_PC02B_ADC1_AIN4 << 16) | MUX_PC02B_ADC1_AIN4) +#define PORT_PC02B_ADC1_AIN4 (_UL_(1) << 2) +#define PIN_PC03B_ADC1_AIN5 _L_(67) /**< \brief ADC1 signal: AIN5 on PC03 mux B */ +#define MUX_PC03B_ADC1_AIN5 _L_(1) +#define PINMUX_PC03B_ADC1_AIN5 ((PIN_PC03B_ADC1_AIN5 << 16) | MUX_PC03B_ADC1_AIN5) +#define PORT_PC03B_ADC1_AIN5 (_UL_(1) << 3) +#define PIN_PB04B_ADC1_AIN6 _L_(36) /**< \brief ADC1 signal: AIN6 on PB04 mux B */ +#define MUX_PB04B_ADC1_AIN6 _L_(1) +#define PINMUX_PB04B_ADC1_AIN6 ((PIN_PB04B_ADC1_AIN6 << 16) | MUX_PB04B_ADC1_AIN6) +#define PORT_PB04B_ADC1_AIN6 (_UL_(1) << 4) +#define PIN_PB05B_ADC1_AIN7 _L_(37) /**< \brief ADC1 signal: AIN7 on PB05 mux B */ +#define MUX_PB05B_ADC1_AIN7 _L_(1) +#define PINMUX_PB05B_ADC1_AIN7 ((PIN_PB05B_ADC1_AIN7 << 16) | MUX_PB05B_ADC1_AIN7) +#define PORT_PB05B_ADC1_AIN7 (_UL_(1) << 5) +#define PIN_PB06B_ADC1_AIN8 _L_(38) /**< \brief ADC1 signal: AIN8 on PB06 mux B */ +#define MUX_PB06B_ADC1_AIN8 _L_(1) +#define PINMUX_PB06B_ADC1_AIN8 ((PIN_PB06B_ADC1_AIN8 << 16) | MUX_PB06B_ADC1_AIN8) +#define PORT_PB06B_ADC1_AIN8 (_UL_(1) << 6) +#define PIN_PB07B_ADC1_AIN9 _L_(39) /**< \brief ADC1 signal: AIN9 on PB07 mux B */ +#define MUX_PB07B_ADC1_AIN9 _L_(1) +#define PINMUX_PB07B_ADC1_AIN9 ((PIN_PB07B_ADC1_AIN9 << 16) | MUX_PB07B_ADC1_AIN9) +#define PORT_PB07B_ADC1_AIN9 (_UL_(1) << 7) +#define PIN_PC00B_ADC1_AIN10 _L_(64) /**< \brief ADC1 signal: AIN10 on PC00 mux B */ +#define MUX_PC00B_ADC1_AIN10 _L_(1) +#define PINMUX_PC00B_ADC1_AIN10 ((PIN_PC00B_ADC1_AIN10 << 16) | MUX_PC00B_ADC1_AIN10) +#define PORT_PC00B_ADC1_AIN10 (_UL_(1) << 0) +#define PIN_PC01B_ADC1_AIN11 _L_(65) /**< \brief ADC1 signal: AIN11 on PC01 mux B */ +#define MUX_PC01B_ADC1_AIN11 _L_(1) +#define PINMUX_PC01B_ADC1_AIN11 ((PIN_PC01B_ADC1_AIN11 << 16) | MUX_PC01B_ADC1_AIN11) +#define PORT_PC01B_ADC1_AIN11 (_UL_(1) << 1) +#define PIN_PC30B_ADC1_AIN12 _L_(94) /**< \brief ADC1 signal: AIN12 on PC30 mux B */ +#define MUX_PC30B_ADC1_AIN12 _L_(1) +#define PINMUX_PC30B_ADC1_AIN12 ((PIN_PC30B_ADC1_AIN12 << 16) | MUX_PC30B_ADC1_AIN12) +#define PORT_PC30B_ADC1_AIN12 (_UL_(1) << 30) +#define PIN_PC31B_ADC1_AIN13 _L_(95) /**< \brief ADC1 signal: AIN13 on PC31 mux B */ +#define MUX_PC31B_ADC1_AIN13 _L_(1) +#define PINMUX_PC31B_ADC1_AIN13 ((PIN_PC31B_ADC1_AIN13 << 16) | MUX_PC31B_ADC1_AIN13) +#define PORT_PC31B_ADC1_AIN13 (_UL_(1) << 31) +#define PIN_PD00B_ADC1_AIN14 _L_(96) /**< \brief ADC1 signal: AIN14 on PD00 mux B */ +#define MUX_PD00B_ADC1_AIN14 _L_(1) +#define PINMUX_PD00B_ADC1_AIN14 ((PIN_PD00B_ADC1_AIN14 << 16) | MUX_PD00B_ADC1_AIN14) +#define PORT_PD00B_ADC1_AIN14 (_UL_(1) << 0) +#define PIN_PD01B_ADC1_AIN15 _L_(97) /**< \brief ADC1 signal: AIN15 on PD01 mux B */ +#define MUX_PD01B_ADC1_AIN15 _L_(1) +#define PINMUX_PD01B_ADC1_AIN15 ((PIN_PD01B_ADC1_AIN15 << 16) | MUX_PD01B_ADC1_AIN15) +#define PORT_PD01B_ADC1_AIN15 (_UL_(1) << 1) +/* ========== PORT definition for DAC peripheral ========== */ +#define PIN_PA02B_DAC_VOUT0 _L_(2) /**< \brief DAC signal: VOUT0 on PA02 mux B */ +#define MUX_PA02B_DAC_VOUT0 _L_(1) +#define PINMUX_PA02B_DAC_VOUT0 ((PIN_PA02B_DAC_VOUT0 << 16) | MUX_PA02B_DAC_VOUT0) +#define PORT_PA02B_DAC_VOUT0 (_UL_(1) << 2) +#define PIN_PA05B_DAC_VOUT1 _L_(5) /**< \brief DAC signal: VOUT1 on PA05 mux B */ +#define MUX_PA05B_DAC_VOUT1 _L_(1) +#define PINMUX_PA05B_DAC_VOUT1 ((PIN_PA05B_DAC_VOUT1 << 16) | MUX_PA05B_DAC_VOUT1) +#define PORT_PA05B_DAC_VOUT1 (_UL_(1) << 5) +/* ========== PORT definition for I2S peripheral ========== */ +#define PIN_PA09J_I2S_FS0 _L_(9) /**< \brief I2S signal: FS0 on PA09 mux J */ +#define MUX_PA09J_I2S_FS0 _L_(9) +#define PINMUX_PA09J_I2S_FS0 ((PIN_PA09J_I2S_FS0 << 16) | MUX_PA09J_I2S_FS0) +#define PORT_PA09J_I2S_FS0 (_UL_(1) << 9) +#define PIN_PA20J_I2S_FS0 _L_(20) /**< \brief I2S signal: FS0 on PA20 mux J */ +#define MUX_PA20J_I2S_FS0 _L_(9) +#define PINMUX_PA20J_I2S_FS0 ((PIN_PA20J_I2S_FS0 << 16) | MUX_PA20J_I2S_FS0) +#define PORT_PA20J_I2S_FS0 (_UL_(1) << 20) +#define PIN_PA23J_I2S_FS1 _L_(23) /**< \brief I2S signal: FS1 on PA23 mux J */ +#define MUX_PA23J_I2S_FS1 _L_(9) +#define PINMUX_PA23J_I2S_FS1 ((PIN_PA23J_I2S_FS1 << 16) | MUX_PA23J_I2S_FS1) +#define PORT_PA23J_I2S_FS1 (_UL_(1) << 23) +#define PIN_PB11J_I2S_FS1 _L_(43) /**< \brief I2S signal: FS1 on PB11 mux J */ +#define MUX_PB11J_I2S_FS1 _L_(9) +#define PINMUX_PB11J_I2S_FS1 ((PIN_PB11J_I2S_FS1 << 16) | MUX_PB11J_I2S_FS1) +#define PORT_PB11J_I2S_FS1 (_UL_(1) << 11) +#define PIN_PA08J_I2S_MCK0 _L_(8) /**< \brief I2S signal: MCK0 on PA08 mux J */ +#define MUX_PA08J_I2S_MCK0 _L_(9) +#define PINMUX_PA08J_I2S_MCK0 ((PIN_PA08J_I2S_MCK0 << 16) | MUX_PA08J_I2S_MCK0) +#define PORT_PA08J_I2S_MCK0 (_UL_(1) << 8) +#define PIN_PB17J_I2S_MCK0 _L_(49) /**< \brief I2S signal: MCK0 on PB17 mux J */ +#define MUX_PB17J_I2S_MCK0 _L_(9) +#define PINMUX_PB17J_I2S_MCK0 ((PIN_PB17J_I2S_MCK0 << 16) | MUX_PB17J_I2S_MCK0) +#define PORT_PB17J_I2S_MCK0 (_UL_(1) << 17) +#define PIN_PB29J_I2S_MCK1 _L_(61) /**< \brief I2S signal: MCK1 on PB29 mux J */ +#define MUX_PB29J_I2S_MCK1 _L_(9) +#define PINMUX_PB29J_I2S_MCK1 ((PIN_PB29J_I2S_MCK1 << 16) | MUX_PB29J_I2S_MCK1) +#define PORT_PB29J_I2S_MCK1 (_UL_(1) << 29) +#define PIN_PB13J_I2S_MCK1 _L_(45) /**< \brief I2S signal: MCK1 on PB13 mux J */ +#define MUX_PB13J_I2S_MCK1 _L_(9) +#define PINMUX_PB13J_I2S_MCK1 ((PIN_PB13J_I2S_MCK1 << 16) | MUX_PB13J_I2S_MCK1) +#define PORT_PB13J_I2S_MCK1 (_UL_(1) << 13) +#define PIN_PA10J_I2S_SCK0 _L_(10) /**< \brief I2S signal: SCK0 on PA10 mux J */ +#define MUX_PA10J_I2S_SCK0 _L_(9) +#define PINMUX_PA10J_I2S_SCK0 ((PIN_PA10J_I2S_SCK0 << 16) | MUX_PA10J_I2S_SCK0) +#define PORT_PA10J_I2S_SCK0 (_UL_(1) << 10) +#define PIN_PB16J_I2S_SCK0 _L_(48) /**< \brief I2S signal: SCK0 on PB16 mux J */ +#define MUX_PB16J_I2S_SCK0 _L_(9) +#define PINMUX_PB16J_I2S_SCK0 ((PIN_PB16J_I2S_SCK0 << 16) | MUX_PB16J_I2S_SCK0) +#define PORT_PB16J_I2S_SCK0 (_UL_(1) << 16) +#define PIN_PB28J_I2S_SCK1 _L_(60) /**< \brief I2S signal: SCK1 on PB28 mux J */ +#define MUX_PB28J_I2S_SCK1 _L_(9) +#define PINMUX_PB28J_I2S_SCK1 ((PIN_PB28J_I2S_SCK1 << 16) | MUX_PB28J_I2S_SCK1) +#define PORT_PB28J_I2S_SCK1 (_UL_(1) << 28) +#define PIN_PB12J_I2S_SCK1 _L_(44) /**< \brief I2S signal: SCK1 on PB12 mux J */ +#define MUX_PB12J_I2S_SCK1 _L_(9) +#define PINMUX_PB12J_I2S_SCK1 ((PIN_PB12J_I2S_SCK1 << 16) | MUX_PB12J_I2S_SCK1) +#define PORT_PB12J_I2S_SCK1 (_UL_(1) << 12) +#define PIN_PA22J_I2S_SDI _L_(22) /**< \brief I2S signal: SDI on PA22 mux J */ +#define MUX_PA22J_I2S_SDI _L_(9) +#define PINMUX_PA22J_I2S_SDI ((PIN_PA22J_I2S_SDI << 16) | MUX_PA22J_I2S_SDI) +#define PORT_PA22J_I2S_SDI (_UL_(1) << 22) +#define PIN_PB10J_I2S_SDI _L_(42) /**< \brief I2S signal: SDI on PB10 mux J */ +#define MUX_PB10J_I2S_SDI _L_(9) +#define PINMUX_PB10J_I2S_SDI ((PIN_PB10J_I2S_SDI << 16) | MUX_PB10J_I2S_SDI) +#define PORT_PB10J_I2S_SDI (_UL_(1) << 10) +#define PIN_PA11J_I2S_SDO _L_(11) /**< \brief I2S signal: SDO on PA11 mux J */ +#define MUX_PA11J_I2S_SDO _L_(9) +#define PINMUX_PA11J_I2S_SDO ((PIN_PA11J_I2S_SDO << 16) | MUX_PA11J_I2S_SDO) +#define PORT_PA11J_I2S_SDO (_UL_(1) << 11) +#define PIN_PA21J_I2S_SDO _L_(21) /**< \brief I2S signal: SDO on PA21 mux J */ +#define MUX_PA21J_I2S_SDO _L_(9) +#define PINMUX_PA21J_I2S_SDO ((PIN_PA21J_I2S_SDO << 16) | MUX_PA21J_I2S_SDO) +#define PORT_PA21J_I2S_SDO (_UL_(1) << 21) +/* ========== PORT definition for PCC peripheral ========== */ +#define PIN_PA14K_PCC_CLK _L_(14) /**< \brief PCC signal: CLK on PA14 mux K */ +#define MUX_PA14K_PCC_CLK _L_(10) +#define PINMUX_PA14K_PCC_CLK ((PIN_PA14K_PCC_CLK << 16) | MUX_PA14K_PCC_CLK) +#define PORT_PA14K_PCC_CLK (_UL_(1) << 14) +#define PIN_PA16K_PCC_DATA0 _L_(16) /**< \brief PCC signal: DATA0 on PA16 mux K */ +#define MUX_PA16K_PCC_DATA0 _L_(10) +#define PINMUX_PA16K_PCC_DATA0 ((PIN_PA16K_PCC_DATA0 << 16) | MUX_PA16K_PCC_DATA0) +#define PORT_PA16K_PCC_DATA0 (_UL_(1) << 16) +#define PIN_PA17K_PCC_DATA1 _L_(17) /**< \brief PCC signal: DATA1 on PA17 mux K */ +#define MUX_PA17K_PCC_DATA1 _L_(10) +#define PINMUX_PA17K_PCC_DATA1 ((PIN_PA17K_PCC_DATA1 << 16) | MUX_PA17K_PCC_DATA1) +#define PORT_PA17K_PCC_DATA1 (_UL_(1) << 17) +#define PIN_PA18K_PCC_DATA2 _L_(18) /**< \brief PCC signal: DATA2 on PA18 mux K */ +#define MUX_PA18K_PCC_DATA2 _L_(10) +#define PINMUX_PA18K_PCC_DATA2 ((PIN_PA18K_PCC_DATA2 << 16) | MUX_PA18K_PCC_DATA2) +#define PORT_PA18K_PCC_DATA2 (_UL_(1) << 18) +#define PIN_PA19K_PCC_DATA3 _L_(19) /**< \brief PCC signal: DATA3 on PA19 mux K */ +#define MUX_PA19K_PCC_DATA3 _L_(10) +#define PINMUX_PA19K_PCC_DATA3 ((PIN_PA19K_PCC_DATA3 << 16) | MUX_PA19K_PCC_DATA3) +#define PORT_PA19K_PCC_DATA3 (_UL_(1) << 19) +#define PIN_PA20K_PCC_DATA4 _L_(20) /**< \brief PCC signal: DATA4 on PA20 mux K */ +#define MUX_PA20K_PCC_DATA4 _L_(10) +#define PINMUX_PA20K_PCC_DATA4 ((PIN_PA20K_PCC_DATA4 << 16) | MUX_PA20K_PCC_DATA4) +#define PORT_PA20K_PCC_DATA4 (_UL_(1) << 20) +#define PIN_PA21K_PCC_DATA5 _L_(21) /**< \brief PCC signal: DATA5 on PA21 mux K */ +#define MUX_PA21K_PCC_DATA5 _L_(10) +#define PINMUX_PA21K_PCC_DATA5 ((PIN_PA21K_PCC_DATA5 << 16) | MUX_PA21K_PCC_DATA5) +#define PORT_PA21K_PCC_DATA5 (_UL_(1) << 21) +#define PIN_PA22K_PCC_DATA6 _L_(22) /**< \brief PCC signal: DATA6 on PA22 mux K */ +#define MUX_PA22K_PCC_DATA6 _L_(10) +#define PINMUX_PA22K_PCC_DATA6 ((PIN_PA22K_PCC_DATA6 << 16) | MUX_PA22K_PCC_DATA6) +#define PORT_PA22K_PCC_DATA6 (_UL_(1) << 22) +#define PIN_PA23K_PCC_DATA7 _L_(23) /**< \brief PCC signal: DATA7 on PA23 mux K */ +#define MUX_PA23K_PCC_DATA7 _L_(10) +#define PINMUX_PA23K_PCC_DATA7 ((PIN_PA23K_PCC_DATA7 << 16) | MUX_PA23K_PCC_DATA7) +#define PORT_PA23K_PCC_DATA7 (_UL_(1) << 23) +#define PIN_PB14K_PCC_DATA8 _L_(46) /**< \brief PCC signal: DATA8 on PB14 mux K */ +#define MUX_PB14K_PCC_DATA8 _L_(10) +#define PINMUX_PB14K_PCC_DATA8 ((PIN_PB14K_PCC_DATA8 << 16) | MUX_PB14K_PCC_DATA8) +#define PORT_PB14K_PCC_DATA8 (_UL_(1) << 14) +#define PIN_PB15K_PCC_DATA9 _L_(47) /**< \brief PCC signal: DATA9 on PB15 mux K */ +#define MUX_PB15K_PCC_DATA9 _L_(10) +#define PINMUX_PB15K_PCC_DATA9 ((PIN_PB15K_PCC_DATA9 << 16) | MUX_PB15K_PCC_DATA9) +#define PORT_PB15K_PCC_DATA9 (_UL_(1) << 15) +#define PIN_PC12K_PCC_DATA10 _L_(76) /**< \brief PCC signal: DATA10 on PC12 mux K */ +#define MUX_PC12K_PCC_DATA10 _L_(10) +#define PINMUX_PC12K_PCC_DATA10 ((PIN_PC12K_PCC_DATA10 << 16) | MUX_PC12K_PCC_DATA10) +#define PORT_PC12K_PCC_DATA10 (_UL_(1) << 12) +#define PIN_PC13K_PCC_DATA11 _L_(77) /**< \brief PCC signal: DATA11 on PC13 mux K */ +#define MUX_PC13K_PCC_DATA11 _L_(10) +#define PINMUX_PC13K_PCC_DATA11 ((PIN_PC13K_PCC_DATA11 << 16) | MUX_PC13K_PCC_DATA11) +#define PORT_PC13K_PCC_DATA11 (_UL_(1) << 13) +#define PIN_PC14K_PCC_DATA12 _L_(78) /**< \brief PCC signal: DATA12 on PC14 mux K */ +#define MUX_PC14K_PCC_DATA12 _L_(10) +#define PINMUX_PC14K_PCC_DATA12 ((PIN_PC14K_PCC_DATA12 << 16) | MUX_PC14K_PCC_DATA12) +#define PORT_PC14K_PCC_DATA12 (_UL_(1) << 14) +#define PIN_PC15K_PCC_DATA13 _L_(79) /**< \brief PCC signal: DATA13 on PC15 mux K */ +#define MUX_PC15K_PCC_DATA13 _L_(10) +#define PINMUX_PC15K_PCC_DATA13 ((PIN_PC15K_PCC_DATA13 << 16) | MUX_PC15K_PCC_DATA13) +#define PORT_PC15K_PCC_DATA13 (_UL_(1) << 15) +#define PIN_PA12K_PCC_DEN1 _L_(12) /**< \brief PCC signal: DEN1 on PA12 mux K */ +#define MUX_PA12K_PCC_DEN1 _L_(10) +#define PINMUX_PA12K_PCC_DEN1 ((PIN_PA12K_PCC_DEN1 << 16) | MUX_PA12K_PCC_DEN1) +#define PORT_PA12K_PCC_DEN1 (_UL_(1) << 12) +#define PIN_PA13K_PCC_DEN2 _L_(13) /**< \brief PCC signal: DEN2 on PA13 mux K */ +#define MUX_PA13K_PCC_DEN2 _L_(10) +#define PINMUX_PA13K_PCC_DEN2 ((PIN_PA13K_PCC_DEN2 << 16) | MUX_PA13K_PCC_DEN2) +#define PORT_PA13K_PCC_DEN2 (_UL_(1) << 13) +/* ========== PORT definition for SDHC0 peripheral ========== */ +#define PIN_PA06I_SDHC0_SDCD _L_(6) /**< \brief SDHC0 signal: SDCD on PA06 mux I */ +#define MUX_PA06I_SDHC0_SDCD _L_(8) +#define PINMUX_PA06I_SDHC0_SDCD ((PIN_PA06I_SDHC0_SDCD << 16) | MUX_PA06I_SDHC0_SDCD) +#define PORT_PA06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PA12I_SDHC0_SDCD _L_(12) /**< \brief SDHC0 signal: SDCD on PA12 mux I */ +#define MUX_PA12I_SDHC0_SDCD _L_(8) +#define PINMUX_PA12I_SDHC0_SDCD ((PIN_PA12I_SDHC0_SDCD << 16) | MUX_PA12I_SDHC0_SDCD) +#define PORT_PA12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PB12I_SDHC0_SDCD _L_(44) /**< \brief SDHC0 signal: SDCD on PB12 mux I */ +#define MUX_PB12I_SDHC0_SDCD _L_(8) +#define PINMUX_PB12I_SDHC0_SDCD ((PIN_PB12I_SDHC0_SDCD << 16) | MUX_PB12I_SDHC0_SDCD) +#define PORT_PB12I_SDHC0_SDCD (_UL_(1) << 12) +#define PIN_PC06I_SDHC0_SDCD _L_(70) /**< \brief SDHC0 signal: SDCD on PC06 mux I */ +#define MUX_PC06I_SDHC0_SDCD _L_(8) +#define PINMUX_PC06I_SDHC0_SDCD ((PIN_PC06I_SDHC0_SDCD << 16) | MUX_PC06I_SDHC0_SDCD) +#define PORT_PC06I_SDHC0_SDCD (_UL_(1) << 6) +#define PIN_PB11I_SDHC0_SDCK _L_(43) /**< \brief SDHC0 signal: SDCK on PB11 mux I */ +#define MUX_PB11I_SDHC0_SDCK _L_(8) +#define PINMUX_PB11I_SDHC0_SDCK ((PIN_PB11I_SDHC0_SDCK << 16) | MUX_PB11I_SDHC0_SDCK) +#define PORT_PB11I_SDHC0_SDCK (_UL_(1) << 11) +#define PIN_PA08I_SDHC0_SDCMD _L_(8) /**< \brief SDHC0 signal: SDCMD on PA08 mux I */ +#define MUX_PA08I_SDHC0_SDCMD _L_(8) +#define PINMUX_PA08I_SDHC0_SDCMD ((PIN_PA08I_SDHC0_SDCMD << 16) | MUX_PA08I_SDHC0_SDCMD) +#define PORT_PA08I_SDHC0_SDCMD (_UL_(1) << 8) +#define PIN_PA09I_SDHC0_SDDAT0 _L_(9) /**< \brief SDHC0 signal: SDDAT0 on PA09 mux I */ +#define MUX_PA09I_SDHC0_SDDAT0 _L_(8) +#define PINMUX_PA09I_SDHC0_SDDAT0 ((PIN_PA09I_SDHC0_SDDAT0 << 16) | MUX_PA09I_SDHC0_SDDAT0) +#define PORT_PA09I_SDHC0_SDDAT0 (_UL_(1) << 9) +#define PIN_PA10I_SDHC0_SDDAT1 _L_(10) /**< \brief SDHC0 signal: SDDAT1 on PA10 mux I */ +#define MUX_PA10I_SDHC0_SDDAT1 _L_(8) +#define PINMUX_PA10I_SDHC0_SDDAT1 ((PIN_PA10I_SDHC0_SDDAT1 << 16) | MUX_PA10I_SDHC0_SDDAT1) +#define PORT_PA10I_SDHC0_SDDAT1 (_UL_(1) << 10) +#define PIN_PA11I_SDHC0_SDDAT2 _L_(11) /**< \brief SDHC0 signal: SDDAT2 on PA11 mux I */ +#define MUX_PA11I_SDHC0_SDDAT2 _L_(8) +#define PINMUX_PA11I_SDHC0_SDDAT2 ((PIN_PA11I_SDHC0_SDDAT2 << 16) | MUX_PA11I_SDHC0_SDDAT2) +#define PORT_PA11I_SDHC0_SDDAT2 (_UL_(1) << 11) +#define PIN_PB10I_SDHC0_SDDAT3 _L_(42) /**< \brief SDHC0 signal: SDDAT3 on PB10 mux I */ +#define MUX_PB10I_SDHC0_SDDAT3 _L_(8) +#define PINMUX_PB10I_SDHC0_SDDAT3 ((PIN_PB10I_SDHC0_SDDAT3 << 16) | MUX_PB10I_SDHC0_SDDAT3) +#define PORT_PB10I_SDHC0_SDDAT3 (_UL_(1) << 10) +#define PIN_PA07I_SDHC0_SDWP _L_(7) /**< \brief SDHC0 signal: SDWP on PA07 mux I */ +#define MUX_PA07I_SDHC0_SDWP _L_(8) +#define PINMUX_PA07I_SDHC0_SDWP ((PIN_PA07I_SDHC0_SDWP << 16) | MUX_PA07I_SDHC0_SDWP) +#define PORT_PA07I_SDHC0_SDWP (_UL_(1) << 7) +#define PIN_PA13I_SDHC0_SDWP _L_(13) /**< \brief SDHC0 signal: SDWP on PA13 mux I */ +#define MUX_PA13I_SDHC0_SDWP _L_(8) +#define PINMUX_PA13I_SDHC0_SDWP ((PIN_PA13I_SDHC0_SDWP << 16) | MUX_PA13I_SDHC0_SDWP) +#define PORT_PA13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PB13I_SDHC0_SDWP _L_(45) /**< \brief SDHC0 signal: SDWP on PB13 mux I */ +#define MUX_PB13I_SDHC0_SDWP _L_(8) +#define PINMUX_PB13I_SDHC0_SDWP ((PIN_PB13I_SDHC0_SDWP << 16) | MUX_PB13I_SDHC0_SDWP) +#define PORT_PB13I_SDHC0_SDWP (_UL_(1) << 13) +#define PIN_PC07I_SDHC0_SDWP _L_(71) /**< \brief SDHC0 signal: SDWP on PC07 mux I */ +#define MUX_PC07I_SDHC0_SDWP _L_(8) +#define PINMUX_PC07I_SDHC0_SDWP ((PIN_PC07I_SDHC0_SDWP << 16) | MUX_PC07I_SDHC0_SDWP) +#define PORT_PC07I_SDHC0_SDWP (_UL_(1) << 7) +/* ========== PORT definition for SDHC1 peripheral ========== */ +#define PIN_PB16I_SDHC1_SDCD _L_(48) /**< \brief SDHC1 signal: SDCD on PB16 mux I */ +#define MUX_PB16I_SDHC1_SDCD _L_(8) +#define PINMUX_PB16I_SDHC1_SDCD ((PIN_PB16I_SDHC1_SDCD << 16) | MUX_PB16I_SDHC1_SDCD) +#define PORT_PB16I_SDHC1_SDCD (_UL_(1) << 16) +#define PIN_PC20I_SDHC1_SDCD _L_(84) /**< \brief SDHC1 signal: SDCD on PC20 mux I */ +#define MUX_PC20I_SDHC1_SDCD _L_(8) +#define PINMUX_PC20I_SDHC1_SDCD ((PIN_PC20I_SDHC1_SDCD << 16) | MUX_PC20I_SDHC1_SDCD) +#define PORT_PC20I_SDHC1_SDCD (_UL_(1) << 20) +#define PIN_PD20I_SDHC1_SDCD _L_(116) /**< \brief SDHC1 signal: SDCD on PD20 mux I */ +#define MUX_PD20I_SDHC1_SDCD _L_(8) +#define PINMUX_PD20I_SDHC1_SDCD ((PIN_PD20I_SDHC1_SDCD << 16) | MUX_PD20I_SDHC1_SDCD) +#define PORT_PD20I_SDHC1_SDCD (_UL_(1) << 20) +#define PIN_PA21I_SDHC1_SDCK _L_(21) /**< \brief SDHC1 signal: SDCK on PA21 mux I */ +#define MUX_PA21I_SDHC1_SDCK _L_(8) +#define PINMUX_PA21I_SDHC1_SDCK ((PIN_PA21I_SDHC1_SDCK << 16) | MUX_PA21I_SDHC1_SDCK) +#define PORT_PA21I_SDHC1_SDCK (_UL_(1) << 21) +#define PIN_PA20I_SDHC1_SDCMD _L_(20) /**< \brief SDHC1 signal: SDCMD on PA20 mux I */ +#define MUX_PA20I_SDHC1_SDCMD _L_(8) +#define PINMUX_PA20I_SDHC1_SDCMD ((PIN_PA20I_SDHC1_SDCMD << 16) | MUX_PA20I_SDHC1_SDCMD) +#define PORT_PA20I_SDHC1_SDCMD (_UL_(1) << 20) +#define PIN_PB18I_SDHC1_SDDAT0 _L_(50) /**< \brief SDHC1 signal: SDDAT0 on PB18 mux I */ +#define MUX_PB18I_SDHC1_SDDAT0 _L_(8) +#define PINMUX_PB18I_SDHC1_SDDAT0 ((PIN_PB18I_SDHC1_SDDAT0 << 16) | MUX_PB18I_SDHC1_SDDAT0) +#define PORT_PB18I_SDHC1_SDDAT0 (_UL_(1) << 18) +#define PIN_PB19I_SDHC1_SDDAT1 _L_(51) /**< \brief SDHC1 signal: SDDAT1 on PB19 mux I */ +#define MUX_PB19I_SDHC1_SDDAT1 _L_(8) +#define PINMUX_PB19I_SDHC1_SDDAT1 ((PIN_PB19I_SDHC1_SDDAT1 << 16) | MUX_PB19I_SDHC1_SDDAT1) +#define PORT_PB19I_SDHC1_SDDAT1 (_UL_(1) << 19) +#define PIN_PB20I_SDHC1_SDDAT2 _L_(52) /**< \brief SDHC1 signal: SDDAT2 on PB20 mux I */ +#define MUX_PB20I_SDHC1_SDDAT2 _L_(8) +#define PINMUX_PB20I_SDHC1_SDDAT2 ((PIN_PB20I_SDHC1_SDDAT2 << 16) | MUX_PB20I_SDHC1_SDDAT2) +#define PORT_PB20I_SDHC1_SDDAT2 (_UL_(1) << 20) +#define PIN_PB21I_SDHC1_SDDAT3 _L_(53) /**< \brief SDHC1 signal: SDDAT3 on PB21 mux I */ +#define MUX_PB21I_SDHC1_SDDAT3 _L_(8) +#define PINMUX_PB21I_SDHC1_SDDAT3 ((PIN_PB21I_SDHC1_SDDAT3 << 16) | MUX_PB21I_SDHC1_SDDAT3) +#define PORT_PB21I_SDHC1_SDDAT3 (_UL_(1) << 21) +#define PIN_PB17I_SDHC1_SDWP _L_(49) /**< \brief SDHC1 signal: SDWP on PB17 mux I */ +#define MUX_PB17I_SDHC1_SDWP _L_(8) +#define PINMUX_PB17I_SDHC1_SDWP ((PIN_PB17I_SDHC1_SDWP << 16) | MUX_PB17I_SDHC1_SDWP) +#define PORT_PB17I_SDHC1_SDWP (_UL_(1) << 17) +#define PIN_PC21I_SDHC1_SDWP _L_(85) /**< \brief SDHC1 signal: SDWP on PC21 mux I */ +#define MUX_PC21I_SDHC1_SDWP _L_(8) +#define PINMUX_PC21I_SDHC1_SDWP ((PIN_PC21I_SDHC1_SDWP << 16) | MUX_PC21I_SDHC1_SDWP) +#define PORT_PC21I_SDHC1_SDWP (_UL_(1) << 21) +#define PIN_PD21I_SDHC1_SDWP _L_(117) /**< \brief SDHC1 signal: SDWP on PD21 mux I */ +#define MUX_PD21I_SDHC1_SDWP _L_(8) +#define PINMUX_PD21I_SDHC1_SDWP ((PIN_PD21I_SDHC1_SDWP << 16) | MUX_PD21I_SDHC1_SDWP) +#define PORT_PD21I_SDHC1_SDWP (_UL_(1) << 21) + +#endif /* _SAMD51P20A_PIO_ */ diff --git a/lib/samd51/samd51a/include/sam.h b/lib/samd51/samd51a/include/sam.h index 59afcbd..ac52c4d 100644 --- a/lib/samd51/samd51a/include/sam.h +++ b/lib/samd51/samd51a/include/sam.h @@ -1,56 +1,56 @@ -/** - * \file - * - * \brief Top level header file - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \license_stop - * - */ - -#ifndef _SAM_ -#define _SAM_ - -#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__) - #include "samd51g18a.h" -#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__) - #include "samd51g19a.h" -#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__) - #include "samd51j18a.h" -#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__) - #include "samd51j19a.h" -#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__) - #include "samd51j20a.h" -#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__) - #include "samd51n19a.h" -#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__) - #include "samd51n20a.h" -#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__) - #include "samd51p19a.h" -#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__) - #include "samd51p20a.h" -#else - #error Library does not support the specified device -#endif - -#endif /* _SAM_ */ - +/** + * \file + * + * \brief Top level header file + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \license_stop + * + */ + +#ifndef _SAM_ +#define _SAM_ + +#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__) + #include "samd51g18a.h" +#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__) + #include "samd51g19a.h" +#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__) + #include "samd51j18a.h" +#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__) + #include "samd51j19a.h" +#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__) + #include "samd51j20a.h" +#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__) + #include "samd51n19a.h" +#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__) + #include "samd51n20a.h" +#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__) + #include "samd51p19a.h" +#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__) + #include "samd51p20a.h" +#else + #error Library does not support the specified device +#endif + +#endif /* _SAM_ */ + diff --git a/lib/samd51/samd51a/include/samd51.h b/lib/samd51/samd51a/include/samd51.h index 62934a8..f023e48 100644 --- a/lib/samd51/samd51a/include/samd51.h +++ b/lib/samd51/samd51a/include/samd51.h @@ -1,64 +1,64 @@ -/** - * \file - * - * \brief Top header file for SAMD51 - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51_ -#define _SAMD51_ - -/** - * \defgroup SAMD51_definitions SAMD51 Device Definitions - * \brief SAMD51 CMSIS Definitions. - */ - -#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__) - #include "samd51g18a.h" -#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__) - #include "samd51g19a.h" -#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__) - #include "samd51j18a.h" -#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__) - #include "samd51j19a.h" -#elif defined(__SAMD51J19B__) || defined(__ATSAMD51J19B__) - #include "samd51j19b.h" -#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__) - #include "samd51j20a.h" -#elif defined(__SAMD51J20CU__) || defined(__ATSAMD51J20CU__) - #include "samd51j20cu.h" -#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__) - #include "samd51n19a.h" -#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__) - #include "samd51n20a.h" -#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__) - #include "samd51p19a.h" -#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__) - #include "samd51p20a.h" -#else - #error Library does not support the specified device. -#endif - -#endif /* _SAMD51_ */ +/** + * \file + * + * \brief Top header file for SAMD51 + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51_ +#define _SAMD51_ + +/** + * \defgroup SAMD51_definitions SAMD51 Device Definitions + * \brief SAMD51 CMSIS Definitions. + */ + +#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__) + #include "samd51g18a.h" +#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__) + #include "samd51g19a.h" +#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__) + #include "samd51j18a.h" +#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__) + #include "samd51j19a.h" +#elif defined(__SAMD51J19B__) || defined(__ATSAMD51J19B__) + #include "samd51j19b.h" +#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__) + #include "samd51j20a.h" +#elif defined(__SAMD51J20CU__) || defined(__ATSAMD51J20CU__) + #include "samd51j20cu.h" +#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__) + #include "samd51n19a.h" +#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__) + #include "samd51n20a.h" +#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__) + #include "samd51p19a.h" +#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__) + #include "samd51p20a.h" +#else + #error Library does not support the specified device. +#endif + +#endif /* _SAMD51_ */ diff --git a/lib/samd51/samd51a/include/samd51g18a.h b/lib/samd51/samd51a/include/samd51g18a.h index 6a13ead..c9b5ddb 100644 --- a/lib/samd51/samd51a/include/samd51g18a.h +++ b/lib/samd51/samd51a/include/samd51g18a.h @@ -1,975 +1,975 @@ -/** - * \file - * - * \brief Header file for SAMD51G18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51G18A_ -#define _SAMD51G18A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51G18A_definitions SAMD51G18A definitions - * This file defines all structures and symbols for SAMD51G18A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G18A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51G18A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51G18A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51G18A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51G18A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51G18A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51G18A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51G18A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51G18A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51G18A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51G18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51G18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51G18A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51G18A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51G18A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51G18A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51G18A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51G18A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TC0_IRQn = 107, /**< 107 SAMD51G18A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51G18A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51G18A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51G18A Basic Timer Counter 3 (TC3) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51G18A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51G18A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51G18A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51G18A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51G18A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51G18A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51G18A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51G18A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - PCC_IRQn = 129, /**< 129 SAMD51G18A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51G18A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51G18A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51G18A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51G18A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51G18A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51G18A SD/MMC Host Controller 0 (SDHC0) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pvReserved70; - void* pvReserved71; - void* pvReserved72; - void* pvReserved73; - void* pvReserved74; - void* pvReserved75; - void* pvReserved76; - void* pvReserved77; - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pvReserved101; - void* pvReserved102; - void* pvReserved103; - void* pvReserved104; - void* pvReserved105; - void* pvReserved106; - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pvReserved111; - void* pvReserved112; - void* pvReserved113; - void* pvReserved114; - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pvReserved128; - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pvReserved136; -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G18A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G18A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G18A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ - -#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G18A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC_INST_NUM 4 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G18A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51g18a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00020000) /* 128 kB */ -#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 512 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060308) -#define ADC0_TOUCH_LINES_NUM 22 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51G18A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51G18A_H */ +/** + * \file + * + * \brief Header file for SAMD51G18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51G18A_ +#define _SAMD51G18A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51G18A_definitions SAMD51G18A definitions + * This file defines all structures and symbols for SAMD51G18A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G18A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51G18A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51G18A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51G18A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51G18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51G18A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51G18A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51G18A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51G18A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51G18A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51G18A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51G18A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51G18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51G18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51G18A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51G18A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51G18A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51G18A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51G18A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51G18A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51G18A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51G18A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51G18A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51G18A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51G18A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51G18A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51G18A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51G18A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51G18A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51G18A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51G18A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TC0_IRQn = 107, /**< 107 SAMD51G18A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51G18A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51G18A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51G18A Basic Timer Counter 3 (TC3) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51G18A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51G18A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51G18A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51G18A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51G18A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51G18A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51G18A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51G18A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51G18A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + PCC_IRQn = 129, /**< 129 SAMD51G18A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51G18A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51G18A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51G18A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51G18A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51G18A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51G18A SD/MMC Host Controller 0 (SDHC0) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pvReserved70; + void* pvReserved71; + void* pvReserved72; + void* pvReserved73; + void* pvReserved74; + void* pvReserved75; + void* pvReserved76; + void* pvReserved77; + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pvReserved101; + void* pvReserved102; + void* pvReserved103; + void* pvReserved104; + void* pvReserved105; + void* pvReserved106; + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pvReserved111; + void* pvReserved112; + void* pvReserved113; + void* pvReserved114; + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pvReserved128; + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pvReserved136; +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G18A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G18A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G18A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ + +#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G18A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC_INST_NUM 4 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G18A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51g18a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 512 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060308) +#define ADC0_TOUCH_LINES_NUM 22 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51G18A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51G18A_H */ diff --git a/lib/samd51/samd51a/include/samd51g19a.h b/lib/samd51/samd51a/include/samd51g19a.h index 510a587..0e09813 100644 --- a/lib/samd51/samd51a/include/samd51g19a.h +++ b/lib/samd51/samd51a/include/samd51g19a.h @@ -1,975 +1,975 @@ -/** - * \file - * - * \brief Header file for SAMD51G19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51G19A_ -#define _SAMD51G19A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51G19A_definitions SAMD51G19A definitions - * This file defines all structures and symbols for SAMD51G19A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G19A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51G19A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51G19A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51G19A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51G19A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51G19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51G19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51G19A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51G19A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51G19A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51G19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51G19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51G19A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51G19A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51G19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51G19A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51G19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51G19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TC0_IRQn = 107, /**< 107 SAMD51G19A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51G19A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51G19A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51G19A Basic Timer Counter 3 (TC3) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51G19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51G19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51G19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51G19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51G19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51G19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51G19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51G19A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - PCC_IRQn = 129, /**< 129 SAMD51G19A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51G19A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51G19A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51G19A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51G19A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51G19A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51G19A SD/MMC Host Controller 0 (SDHC0) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pvReserved70; - void* pvReserved71; - void* pvReserved72; - void* pvReserved73; - void* pvReserved74; - void* pvReserved75; - void* pvReserved76; - void* pvReserved77; - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pvReserved101; - void* pvReserved102; - void* pvReserved103; - void* pvReserved104; - void* pvReserved105; - void* pvReserved106; - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pvReserved111; - void* pvReserved112; - void* pvReserved113; - void* pvReserved114; - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pvReserved128; - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pvReserved136; -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51G19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G19A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G19A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G19A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ - -#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G19A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC_INST_NUM 4 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51G19A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51g19a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ -#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060307) -#define ADC0_TOUCH_LINES_NUM 22 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51G19A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51G19A_H */ +/** + * \file + * + * \brief Header file for SAMD51G19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51G19A_ +#define _SAMD51G19A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51G19A_definitions SAMD51G19A definitions + * This file defines all structures and symbols for SAMD51G19A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G19A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51G19A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51G19A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51G19A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51G19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51G19A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51G19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51G19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51G19A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51G19A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51G19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51G19A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51G19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51G19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51G19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51G19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51G19A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51G19A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51G19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51G19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51G19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51G19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51G19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51G19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51G19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51G19A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51G19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51G19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51G19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51G19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51G19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TC0_IRQn = 107, /**< 107 SAMD51G19A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51G19A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51G19A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51G19A Basic Timer Counter 3 (TC3) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51G19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51G19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51G19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51G19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51G19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51G19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51G19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51G19A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51G19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + PCC_IRQn = 129, /**< 129 SAMD51G19A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51G19A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51G19A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51G19A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51G19A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51G19A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51G19A SD/MMC Host Controller 0 (SDHC0) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pvReserved70; + void* pvReserved71; + void* pvReserved72; + void* pvReserved73; + void* pvReserved74; + void* pvReserved75; + void* pvReserved76; + void* pvReserved77; + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pvReserved101; + void* pvReserved102; + void* pvReserved103; + void* pvReserved104; + void* pvReserved105; + void* pvReserved106; + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pvReserved111; + void* pvReserved112; + void* pvReserved113; + void* pvReserved114; + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pvReserved128; + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pvReserved136; +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51G19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G19A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G19A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G19A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ + +#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G19A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC_INST_NUM 4 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51G19A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51g19a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ +#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060307) +#define ADC0_TOUCH_LINES_NUM 22 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51G19A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51G19A_H */ diff --git a/lib/samd51/samd51a/include/samd51j18a.h b/lib/samd51/samd51a/include/samd51j18a.h index 37c3914..1239317 100644 --- a/lib/samd51/samd51a/include/samd51j18a.h +++ b/lib/samd51/samd51a/include/samd51j18a.h @@ -1,1017 +1,1017 @@ -/** - * \file - * - * \brief Header file for SAMD51J18A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51J18A_ -#define _SAMD51J18A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51J18A_definitions SAMD51J18A definitions - * This file defines all structures and symbols for SAMD51J18A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J18A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51J18A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51J18A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51J18A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J18A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51J18A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51J18A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51J18A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51J18A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51J18A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51J18A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51J18A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51J18A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51J18A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51J18A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51J18A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51J18A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51J18A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51J18A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51J18A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51J18A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51J18A Basic Timer Counter 5 (TC5) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51J18A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51J18A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51J18A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51J18A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51J18A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51J18A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51J18A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51J18A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51J18A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51J18A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51J18A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51J18A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51J18A SD/MMC Host Controller 0 (SDHC0) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pvReserved70; - void* pvReserved71; - void* pvReserved72; - void* pvReserved73; - void* pvReserved74; - void* pvReserved75; - void* pvReserved76; - void* pvReserved77; - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pvReserved113; - void* pvReserved114; - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pvReserved136; -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J18A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J18A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J18A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ - -#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J18A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J18A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51j18a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00020000) /* 128 kB */ -#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 512 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060306) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51J18A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51J18A_H */ +/** + * \file + * + * \brief Header file for SAMD51J18A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J18A_ +#define _SAMD51J18A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51J18A_definitions SAMD51J18A definitions + * This file defines all structures and symbols for SAMD51J18A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51J18A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51J18A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51J18A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J18A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J18A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51J18A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51J18A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51J18A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51J18A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51J18A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51J18A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J18A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51J18A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51J18A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51J18A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51J18A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51J18A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51J18A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51J18A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51J18A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51J18A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51J18A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51J18A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51J18A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51J18A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51J18A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51J18A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51J18A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51J18A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51J18A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51J18A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51J18A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51J18A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51J18A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51J18A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51J18A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51J18A Basic Timer Counter 5 (TC5) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51J18A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51J18A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51J18A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51J18A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51J18A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51J18A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51J18A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51J18A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51J18A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51J18A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51J18A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51J18A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51J18A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51J18A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51J18A SD/MMC Host Controller 0 (SDHC0) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pvReserved70; + void* pvReserved71; + void* pvReserved72; + void* pvReserved73; + void* pvReserved74; + void* pvReserved75; + void* pvReserved76; + void* pvReserved77; + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pvReserved113; + void* pvReserved114; + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pvReserved136; +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ + +#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J18A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51j18a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00020000) /* 128 kB */ +#define FLASH_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 512 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060306) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51J18A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51J18A_H */ diff --git a/lib/samd51/samd51a/include/samd51j19a.h b/lib/samd51/samd51a/include/samd51j19a.h index d5a05e1..f6185a6 100644 --- a/lib/samd51/samd51a/include/samd51j19a.h +++ b/lib/samd51/samd51a/include/samd51j19a.h @@ -1,1017 +1,1017 @@ -/** - * \file - * - * \brief Header file for SAMD51J19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51J19A_ -#define _SAMD51J19A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51J19A_definitions SAMD51J19A definitions - * This file defines all structures and symbols for SAMD51J19A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J19A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51J19A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51J19A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51J19A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J19A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51J19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51J19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51J19A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51J19A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51J19A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51J19A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51J19A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51J19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51J19A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51J19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51J19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51J19A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51J19A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51J19A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51J19A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51J19A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51J19A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51J19A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51J19A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51J19A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51J19A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51J19A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51J19A Basic Timer Counter 5 (TC5) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51J19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51J19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51J19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51J19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51J19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51J19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51J19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51J19A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51J19A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51J19A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51J19A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51J19A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51J19A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51J19A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51J19A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51J19A SD/MMC Host Controller 0 (SDHC0) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pvReserved70; - void* pvReserved71; - void* pvReserved72; - void* pvReserved73; - void* pvReserved74; - void* pvReserved75; - void* pvReserved76; - void* pvReserved77; - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pvReserved113; - void* pvReserved114; - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pvReserved136; -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J19A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J19A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J19A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ - -#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J19A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J19A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51j19a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ -#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060305) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51J19A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51J19A_H */ +/** + * \file + * + * \brief Header file for SAMD51J19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J19A_ +#define _SAMD51J19A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51J19A_definitions SAMD51J19A definitions + * This file defines all structures and symbols for SAMD51J19A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J19A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51J19A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51J19A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51J19A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J19A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51J19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51J19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51J19A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51J19A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51J19A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51J19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51J19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51J19A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51J19A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51J19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51J19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51J19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51J19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51J19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51J19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51J19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51J19A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51J19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51J19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51J19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51J19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51J19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51J19A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51J19A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51J19A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51J19A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51J19A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51J19A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51J19A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51J19A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51J19A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51J19A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51J19A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51J19A Basic Timer Counter 5 (TC5) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51J19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51J19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51J19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51J19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51J19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51J19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51J19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51J19A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51J19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51J19A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51J19A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51J19A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51J19A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51J19A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51J19A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51J19A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51J19A SD/MMC Host Controller 0 (SDHC0) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pvReserved70; + void* pvReserved71; + void* pvReserved72; + void* pvReserved73; + void* pvReserved74; + void* pvReserved75; + void* pvReserved76; + void* pvReserved77; + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pvReserved113; + void* pvReserved114; + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pvReserved136; +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J19A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J19A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J19A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ + +#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J19A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J19A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51j19a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ +#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060305) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51J19A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51J19A_H */ diff --git a/lib/samd51/samd51a/include/samd51j20a.h b/lib/samd51/samd51a/include/samd51j20a.h index 28c5369..f7b5c49 100644 --- a/lib/samd51/samd51a/include/samd51j20a.h +++ b/lib/samd51/samd51a/include/samd51j20a.h @@ -1,1017 +1,1017 @@ -/** - * \file - * - * \brief Header file for SAMD51J20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51J20A_ -#define _SAMD51J20A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51J20A_definitions SAMD51J20A definitions - * This file defines all structures and symbols for SAMD51J20A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J20A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51J20A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51J20A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51J20A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J20A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51J20A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51J20A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51J20A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51J20A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51J20A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51J20A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51J20A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51J20A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51J20A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51J20A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51J20A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51J20A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51J20A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51J20A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51J20A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51J20A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51J20A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51J20A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51J20A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51J20A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51J20A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51J20A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51J20A Basic Timer Counter 5 (TC5) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51J20A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51J20A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51J20A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51J20A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51J20A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51J20A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51J20A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51J20A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51J20A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51J20A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51J20A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51J20A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51J20A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51J20A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51J20A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51J20A SD/MMC Host Controller 0 (SDHC0) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pvReserved70; - void* pvReserved71; - void* pvReserved72; - void* pvReserved73; - void* pvReserved74; - void* pvReserved75; - void* pvReserved76; - void* pvReserved77; - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pvReserved113; - void* pvReserved114; - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pvReserved136; -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J20A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J20A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J20A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ - -#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J20A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51J20A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51j20a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_SIZE _UL_(0x00100000) /* 1024 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060304) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 2 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51J20A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51J20A_H */ +/** + * \file + * + * \brief Header file for SAMD51J20A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51J20A_ +#define _SAMD51J20A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51J20A_definitions SAMD51J20A definitions + * This file defines all structures and symbols for SAMD51J20A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J20A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51J20A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51J20A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51J20A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51J20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51J20A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51J20A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51J20A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51J20A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51J20A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51J20A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51J20A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51J20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51J20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51J20A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51J20A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51J20A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51J20A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51J20A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51J20A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51J20A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51J20A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51J20A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51J20A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51J20A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51J20A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51J20A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51J20A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51J20A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51J20A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51J20A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51J20A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51J20A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51J20A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51J20A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51J20A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51J20A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51J20A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51J20A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51J20A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51J20A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51J20A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51J20A Basic Timer Counter 5 (TC5) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51J20A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51J20A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51J20A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51J20A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51J20A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51J20A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51J20A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51J20A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51J20A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51J20A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51J20A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51J20A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51J20A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51J20A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51J20A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51J20A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51J20A SD/MMC Host Controller 0 (SDHC0) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pvReserved70; + void* pvReserved71; + void* pvReserved72; + void* pvReserved73; + void* pvReserved74; + void* pvReserved75; + void* pvReserved76; + void* pvReserved77; + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pvReserved113; + void* pvReserved114; + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pvReserved136; +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51J20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J20A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J20A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J20A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ + +#define ID_PERIPH_COUNT 129 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J20A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC_INST_NUM 1 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC_INST_NUM 6 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51J20A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51j20a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_SIZE _UL_(0x00100000) /* 1024 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060304) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 2 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51J20A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51J20A_H */ diff --git a/lib/samd51/samd51a/include/samd51n19a.h b/lib/samd51/samd51a/include/samd51n19a.h index bd067fa..23a7b82 100644 --- a/lib/samd51/samd51a/include/samd51n19a.h +++ b/lib/samd51/samd51a/include/samd51n19a.h @@ -1,1059 +1,1059 @@ -/** - * \file - * - * \brief Header file for SAMD51N19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51N19A_ -#define _SAMD51N19A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51N19A_definitions SAMD51N19A definitions - * This file defines all structures and symbols for SAMD51N19A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N19A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51N19A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51N19A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51N19A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51N19A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51N19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51N19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51N19A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51N19A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51N19A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51N19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51N19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51N19A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51N19A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - SERCOM6_0_IRQn = 70, /**< 70 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ - SERCOM6_1_IRQn = 71, /**< 71 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ - SERCOM6_2_IRQn = 72, /**< 72 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ - SERCOM6_3_IRQn = 73, /**< 73 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ - SERCOM7_0_IRQn = 74, /**< 74 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ - SERCOM7_1_IRQn = 75, /**< 75 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ - SERCOM7_2_IRQn = 76, /**< 76 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ - SERCOM7_3_IRQn = 77, /**< 77 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51N19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51N19A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51N19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51N19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51N19A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51N19A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51N19A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51N19A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51N19A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51N19A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51N19A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51N19A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51N19A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51N19A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51N19A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51N19A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 113, /**< 113 SAMD51N19A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 114, /**< 114 SAMD51N19A Basic Timer Counter 7 (TC7) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51N19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51N19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51N19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51N19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51N19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51N19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51N19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51N19A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51N19A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51N19A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51N19A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51N19A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51N19A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51N19A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51N19A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51N19A SD/MMC Host Controller 0 (SDHC0) */ - SDHC1_IRQn = 136, /**< 136 SAMD51N19A SD/MMC Host Controller 1 (SDHC1) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ - void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ - void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ - void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ - void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ - void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ - void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ - void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void SERCOM6_0_Handler ( void ); -void SERCOM6_1_Handler ( void ); -void SERCOM6_2_Handler ( void ); -void SERCOM6_3_Handler ( void ); -void SERCOM7_0_Handler ( void ); -void SERCOM7_1_Handler ( void ); -void SERCOM7_2_Handler ( void ); -void SERCOM7_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); -void SDHC1_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51N19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N19A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N19A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sdhc1.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sercom6.h" -#include "instance/sercom7.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N19A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ -#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ -#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ - -#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N19A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ -#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ -#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N19A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51n19a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ -#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060303) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 3 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51N19A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51N19A_H */ +/** + * \file + * + * \brief Header file for SAMD51N19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51N19A_ +#define _SAMD51N19A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51N19A_definitions SAMD51N19A definitions + * This file defines all structures and symbols for SAMD51N19A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N19A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51N19A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51N19A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51N19A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51N19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51N19A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51N19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51N19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51N19A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51N19A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51N19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51N19A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51N19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51N19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51N19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51N19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51N19A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51N19A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51N19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51N19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51N19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51N19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51N19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51N19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + SERCOM6_0_IRQn = 70, /**< 70 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ + SERCOM6_1_IRQn = 71, /**< 71 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ + SERCOM6_2_IRQn = 72, /**< 72 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ + SERCOM6_3_IRQn = 73, /**< 73 SAMD51N19A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ + SERCOM7_0_IRQn = 74, /**< 74 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ + SERCOM7_1_IRQn = 75, /**< 75 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ + SERCOM7_2_IRQn = 76, /**< 76 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ + SERCOM7_3_IRQn = 77, /**< 77 SAMD51N19A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51N19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51N19A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51N19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51N19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51N19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51N19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51N19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51N19A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51N19A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51N19A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51N19A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51N19A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51N19A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51N19A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51N19A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51N19A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51N19A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51N19A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51N19A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 113, /**< 113 SAMD51N19A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 114, /**< 114 SAMD51N19A Basic Timer Counter 7 (TC7) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51N19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51N19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51N19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51N19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51N19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51N19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51N19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51N19A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51N19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51N19A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51N19A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51N19A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51N19A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51N19A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51N19A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51N19A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51N19A SD/MMC Host Controller 0 (SDHC0) */ + SDHC1_IRQn = 136, /**< 136 SAMD51N19A SD/MMC Host Controller 1 (SDHC1) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ + void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ + void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ + void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ + void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ + void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ + void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ + void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void SERCOM6_0_Handler ( void ); +void SERCOM6_1_Handler ( void ); +void SERCOM6_2_Handler ( void ); +void SERCOM6_3_Handler ( void ); +void SERCOM7_0_Handler ( void ); +void SERCOM7_1_Handler ( void ); +void SERCOM7_2_Handler ( void ); +void SERCOM7_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); +void SDHC1_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51N19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N19A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N19A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sdhc1.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sercom6.h" +#include "instance/sercom7.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N19A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ +#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ +#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ + +#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N19A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ +#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ +#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N19A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51n19a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ +#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060303) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 3 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51N19A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51N19A_H */ diff --git a/lib/samd51/samd51a/include/samd51n20a.h b/lib/samd51/samd51a/include/samd51n20a.h index fabcb00..846f5e8 100644 --- a/lib/samd51/samd51a/include/samd51n20a.h +++ b/lib/samd51/samd51a/include/samd51n20a.h @@ -1,1059 +1,1059 @@ -/** - * \file - * - * \brief Header file for SAMD51N20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51N20A_ -#define _SAMD51N20A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51N20A_definitions SAMD51N20A definitions - * This file defines all structures and symbols for SAMD51N20A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N20A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51N20A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51N20A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51N20A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51N20A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51N20A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51N20A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51N20A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51N20A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51N20A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51N20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51N20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51N20A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51N20A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - SERCOM6_0_IRQn = 70, /**< 70 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ - SERCOM6_1_IRQn = 71, /**< 71 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ - SERCOM6_2_IRQn = 72, /**< 72 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ - SERCOM6_3_IRQn = 73, /**< 73 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ - SERCOM7_0_IRQn = 74, /**< 74 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ - SERCOM7_1_IRQn = 75, /**< 75 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ - SERCOM7_2_IRQn = 76, /**< 76 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ - SERCOM7_3_IRQn = 77, /**< 77 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51N20A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51N20A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51N20A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51N20A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51N20A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51N20A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51N20A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51N20A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51N20A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51N20A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51N20A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51N20A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51N20A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51N20A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51N20A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51N20A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 113, /**< 113 SAMD51N20A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 114, /**< 114 SAMD51N20A Basic Timer Counter 7 (TC7) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51N20A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51N20A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51N20A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51N20A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51N20A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51N20A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51N20A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51N20A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51N20A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51N20A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51N20A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51N20A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51N20A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51N20A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51N20A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51N20A SD/MMC Host Controller 0 (SDHC0) */ - SDHC1_IRQn = 136, /**< 136 SAMD51N20A SD/MMC Host Controller 1 (SDHC1) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ - void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ - void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ - void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ - void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ - void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ - void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ - void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void SERCOM6_0_Handler ( void ); -void SERCOM6_1_Handler ( void ); -void SERCOM6_2_Handler ( void ); -void SERCOM6_3_Handler ( void ); -void SERCOM7_0_Handler ( void ); -void SERCOM7_1_Handler ( void ); -void SERCOM7_2_Handler ( void ); -void SERCOM7_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); -void SDHC1_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51N20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N20A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N20A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sdhc1.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sercom6.h" -#include "instance/sercom7.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N20A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ -#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ -#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ - -#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N20A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ -#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ -#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51N20A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51n20a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_SIZE _UL_(0x00100000) /* 1024 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060302) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 3 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51N20A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51N20A_H */ +/** + * \file + * + * \brief Header file for SAMD51N20A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51N20A_ +#define _SAMD51N20A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51N20A_definitions SAMD51N20A definitions + * This file defines all structures and symbols for SAMD51N20A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N20A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51N20A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51N20A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51N20A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51N20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51N20A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51N20A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51N20A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51N20A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51N20A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51N20A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51N20A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51N20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51N20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51N20A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51N20A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51N20A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51N20A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51N20A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51N20A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51N20A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51N20A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51N20A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51N20A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + SERCOM6_0_IRQn = 70, /**< 70 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ + SERCOM6_1_IRQn = 71, /**< 71 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ + SERCOM6_2_IRQn = 72, /**< 72 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ + SERCOM6_3_IRQn = 73, /**< 73 SAMD51N20A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ + SERCOM7_0_IRQn = 74, /**< 74 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ + SERCOM7_1_IRQn = 75, /**< 75 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ + SERCOM7_2_IRQn = 76, /**< 76 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ + SERCOM7_3_IRQn = 77, /**< 77 SAMD51N20A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51N20A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51N20A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51N20A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51N20A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51N20A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51N20A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51N20A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51N20A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51N20A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51N20A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51N20A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51N20A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51N20A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51N20A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51N20A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51N20A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51N20A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51N20A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51N20A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 113, /**< 113 SAMD51N20A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 114, /**< 114 SAMD51N20A Basic Timer Counter 7 (TC7) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51N20A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51N20A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51N20A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51N20A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51N20A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51N20A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51N20A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51N20A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51N20A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51N20A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51N20A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51N20A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51N20A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51N20A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51N20A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51N20A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51N20A SD/MMC Host Controller 0 (SDHC0) */ + SDHC1_IRQn = 136, /**< 136 SAMD51N20A SD/MMC Host Controller 1 (SDHC1) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ + void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ + void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ + void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ + void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ + void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ + void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ + void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void SERCOM6_0_Handler ( void ); +void SERCOM6_1_Handler ( void ); +void SERCOM6_2_Handler ( void ); +void SERCOM6_3_Handler ( void ); +void SERCOM7_0_Handler ( void ); +void SERCOM7_1_Handler ( void ); +void SERCOM7_2_Handler ( void ); +void SERCOM7_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); +void SDHC1_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51N20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N20A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N20A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sdhc1.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sercom6.h" +#include "instance/sercom7.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N20A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ +#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ +#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ + +#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N20A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ +#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ +#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51N20A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51n20a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_SIZE _UL_(0x00100000) /* 1024 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060302) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 3 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51N20A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51N20A_H */ diff --git a/lib/samd51/samd51a/include/samd51p19a.h b/lib/samd51/samd51a/include/samd51p19a.h index 39bb9de..f3a5936 100644 --- a/lib/samd51/samd51a/include/samd51p19a.h +++ b/lib/samd51/samd51a/include/samd51p19a.h @@ -1,1059 +1,1059 @@ -/** - * \file - * - * \brief Header file for SAMD51P19A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51P19A_ -#define _SAMD51P19A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51P19A_definitions SAMD51P19A definitions - * This file defines all structures and symbols for SAMD51P19A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P19A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51P19A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51P19A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51P19A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51P19A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51P19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51P19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51P19A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51P19A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51P19A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51P19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51P19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51P19A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51P19A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - SERCOM6_0_IRQn = 70, /**< 70 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ - SERCOM6_1_IRQn = 71, /**< 71 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ - SERCOM6_2_IRQn = 72, /**< 72 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ - SERCOM6_3_IRQn = 73, /**< 73 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ - SERCOM7_0_IRQn = 74, /**< 74 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ - SERCOM7_1_IRQn = 75, /**< 75 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ - SERCOM7_2_IRQn = 76, /**< 76 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ - SERCOM7_3_IRQn = 77, /**< 77 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51P19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51P19A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51P19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51P19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51P19A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51P19A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51P19A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51P19A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51P19A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51P19A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51P19A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51P19A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51P19A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51P19A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51P19A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51P19A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 113, /**< 113 SAMD51P19A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 114, /**< 114 SAMD51P19A Basic Timer Counter 7 (TC7) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51P19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51P19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51P19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51P19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51P19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51P19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51P19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51P19A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51P19A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51P19A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51P19A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51P19A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51P19A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51P19A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51P19A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51P19A SD/MMC Host Controller 0 (SDHC0) */ - SDHC1_IRQn = 136, /**< 136 SAMD51P19A SD/MMC Host Controller 1 (SDHC1) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ - void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ - void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ - void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ - void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ - void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ - void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ - void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void SERCOM6_0_Handler ( void ); -void SERCOM6_1_Handler ( void ); -void SERCOM6_2_Handler ( void ); -void SERCOM6_3_Handler ( void ); -void SERCOM7_0_Handler ( void ); -void SERCOM7_1_Handler ( void ); -void SERCOM7_2_Handler ( void ); -void SERCOM7_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); -void SDHC1_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51P19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P19A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P19A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sdhc1.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sercom6.h" -#include "instance/sercom7.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P19A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ -#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ -#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ - -#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P19A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ -#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ -#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P19A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51p19a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ -#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 1024 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060301) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 4 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51P19A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51P19A_H */ +/** + * \file + * + * \brief Header file for SAMD51P19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51P19A_ +#define _SAMD51P19A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51P19A_definitions SAMD51P19A definitions + * This file defines all structures and symbols for SAMD51P19A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P19A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51P19A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51P19A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51P19A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51P19A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51P19A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51P19A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51P19A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51P19A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51P19A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51P19A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51P19A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51P19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51P19A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51P19A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51P19A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51P19A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51P19A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51P19A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51P19A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51P19A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51P19A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51P19A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51P19A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + SERCOM6_0_IRQn = 70, /**< 70 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ + SERCOM6_1_IRQn = 71, /**< 71 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ + SERCOM6_2_IRQn = 72, /**< 72 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ + SERCOM6_3_IRQn = 73, /**< 73 SAMD51P19A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ + SERCOM7_0_IRQn = 74, /**< 74 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ + SERCOM7_1_IRQn = 75, /**< 75 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ + SERCOM7_2_IRQn = 76, /**< 76 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ + SERCOM7_3_IRQn = 77, /**< 77 SAMD51P19A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51P19A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51P19A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51P19A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51P19A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51P19A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51P19A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51P19A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51P19A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51P19A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51P19A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51P19A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51P19A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51P19A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51P19A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51P19A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51P19A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51P19A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51P19A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51P19A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 113, /**< 113 SAMD51P19A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 114, /**< 114 SAMD51P19A Basic Timer Counter 7 (TC7) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51P19A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51P19A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51P19A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51P19A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51P19A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51P19A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51P19A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51P19A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51P19A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51P19A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51P19A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51P19A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51P19A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51P19A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51P19A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51P19A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51P19A SD/MMC Host Controller 0 (SDHC0) */ + SDHC1_IRQn = 136, /**< 136 SAMD51P19A SD/MMC Host Controller 1 (SDHC1) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ + void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ + void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ + void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ + void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ + void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ + void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ + void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void SERCOM6_0_Handler ( void ); +void SERCOM6_1_Handler ( void ); +void SERCOM6_2_Handler ( void ); +void SERCOM6_3_Handler ( void ); +void SERCOM7_0_Handler ( void ); +void SERCOM7_1_Handler ( void ); +void SERCOM7_2_Handler ( void ); +void SERCOM7_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); +void SDHC1_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51P19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P19A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P19A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sdhc1.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sercom6.h" +#include "instance/sercom7.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P19A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ +#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ +#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ + +#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P19A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ +#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ +#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P19A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51p19a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00030000) /* 192 kB */ +#define FLASH_SIZE _UL_(0x00080000) /* 512 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 1024 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060301) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 4 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51P19A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51P19A_H */ diff --git a/lib/samd51/samd51a/include/samd51p20a.h b/lib/samd51/samd51a/include/samd51p20a.h index 9e157ed..2ba63d6 100644 --- a/lib/samd51/samd51a/include/samd51p20a.h +++ b/lib/samd51/samd51a/include/samd51p20a.h @@ -1,1059 +1,1059 @@ -/** - * \file - * - * \brief Header file for SAMD51P20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SAMD51P20A_ -#define _SAMD51P20A_ - -/** - * \ingroup SAMD51_definitions - * \addtogroup SAMD51P20A_definitions SAMD51P20A definitions - * This file defines all structures and symbols for SAMD51P20A: - * - registers and bitfields - * - peripheral base address - * - peripheral ID - * - PIO definitions -*/ -/*@{*/ - -#ifdef __cplusplus - extern "C" { -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -#include -#ifndef __cplusplus -typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#else -typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ -typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ -typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ -#endif -typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ -typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ -typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ -typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ -#endif - -#if !defined(SKIP_INTEGER_LITERALS) -#if defined(_U_) || defined(_L_) || defined(_UL_) - #error "Integer Literals macros already defined elsewhere" -#endif - -#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) -/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ -#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ -#define _L_(x) x ## L /**< C code: Long integer literal constant value */ -#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ -#else /* Assembler */ -#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ -#define _L_(x) x /**< Assembler: Long integer literal constant value */ -#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ -#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -#endif /* SKIP_INTEGER_LITERALS */ - -/* ************************************************************************** */ -/** CMSIS DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P20A_cmsis CMSIS Definitions */ -/*@{*/ - -/** Interrupt Number Definition */ -typedef enum IRQn -{ - /****** Cortex-M4 Processor Exceptions Numbers *******************/ - NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ - HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ - MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ - BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ - UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ - SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ - SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ - /****** SAMD51P20A-specific Interrupt Numbers *********************/ - PM_IRQn = 0, /**< 0 SAMD51P20A Power Manager (PM) */ - MCLK_IRQn = 1, /**< 1 SAMD51P20A Main Clock (MCLK) */ - OSCCTRL_0_IRQn = 2, /**< 2 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ - OSCCTRL_1_IRQn = 3, /**< 3 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ - OSCCTRL_2_IRQn = 4, /**< 4 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ - OSCCTRL_3_IRQn = 5, /**< 5 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ - OSCCTRL_4_IRQn = 6, /**< 6 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ - OSC32KCTRL_IRQn = 7, /**< 7 SAMD51P20A 32kHz Oscillators Control (OSC32KCTRL) */ - SUPC_0_IRQn = 8, /**< 8 SAMD51P20A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ - SUPC_1_IRQn = 9, /**< 9 SAMD51P20A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ - WDT_IRQn = 10, /**< 10 SAMD51P20A Watchdog Timer (WDT) */ - RTC_IRQn = 11, /**< 11 SAMD51P20A Real-Time Counter (RTC) */ - EIC_0_IRQn = 12, /**< 12 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_0 */ - EIC_1_IRQn = 13, /**< 13 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_1 */ - EIC_2_IRQn = 14, /**< 14 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_2 */ - EIC_3_IRQn = 15, /**< 15 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_3 */ - EIC_4_IRQn = 16, /**< 16 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_4 */ - EIC_5_IRQn = 17, /**< 17 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_5 */ - EIC_6_IRQn = 18, /**< 18 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_6 */ - EIC_7_IRQn = 19, /**< 19 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_7 */ - EIC_8_IRQn = 20, /**< 20 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_8 */ - EIC_9_IRQn = 21, /**< 21 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_9 */ - EIC_10_IRQn = 22, /**< 22 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_10 */ - EIC_11_IRQn = 23, /**< 23 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_11 */ - EIC_12_IRQn = 24, /**< 24 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_12 */ - EIC_13_IRQn = 25, /**< 25 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_13 */ - EIC_14_IRQn = 26, /**< 26 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_14 */ - EIC_15_IRQn = 27, /**< 27 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_15 */ - FREQM_IRQn = 28, /**< 28 SAMD51P20A Frequency Meter (FREQM) */ - NVMCTRL_0_IRQn = 29, /**< 29 SAMD51P20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ - NVMCTRL_1_IRQn = 30, /**< 30 SAMD51P20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ - DMAC_0_IRQn = 31, /**< 31 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ - DMAC_1_IRQn = 32, /**< 32 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ - DMAC_2_IRQn = 33, /**< 33 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ - DMAC_3_IRQn = 34, /**< 34 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ - DMAC_4_IRQn = 35, /**< 35 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ - EVSYS_0_IRQn = 36, /**< 36 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ - EVSYS_1_IRQn = 37, /**< 37 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ - EVSYS_2_IRQn = 38, /**< 38 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ - EVSYS_3_IRQn = 39, /**< 39 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ - EVSYS_4_IRQn = 40, /**< 40 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ - PAC_IRQn = 41, /**< 41 SAMD51P20A Peripheral Access Controller (PAC) */ - RAMECC_IRQn = 45, /**< 45 SAMD51P20A RAM ECC (RAMECC) */ - SERCOM0_0_IRQn = 46, /**< 46 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ - SERCOM0_1_IRQn = 47, /**< 47 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ - SERCOM0_2_IRQn = 48, /**< 48 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ - SERCOM0_3_IRQn = 49, /**< 49 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ - SERCOM1_0_IRQn = 50, /**< 50 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ - SERCOM1_1_IRQn = 51, /**< 51 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ - SERCOM1_2_IRQn = 52, /**< 52 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ - SERCOM1_3_IRQn = 53, /**< 53 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ - SERCOM2_0_IRQn = 54, /**< 54 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ - SERCOM2_1_IRQn = 55, /**< 55 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ - SERCOM2_2_IRQn = 56, /**< 56 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ - SERCOM2_3_IRQn = 57, /**< 57 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ - SERCOM3_0_IRQn = 58, /**< 58 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ - SERCOM3_1_IRQn = 59, /**< 59 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ - SERCOM3_2_IRQn = 60, /**< 60 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ - SERCOM3_3_IRQn = 61, /**< 61 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ - SERCOM4_0_IRQn = 62, /**< 62 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ - SERCOM4_1_IRQn = 63, /**< 63 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ - SERCOM4_2_IRQn = 64, /**< 64 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ - SERCOM4_3_IRQn = 65, /**< 65 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ - SERCOM5_0_IRQn = 66, /**< 66 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ - SERCOM5_1_IRQn = 67, /**< 67 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ - SERCOM5_2_IRQn = 68, /**< 68 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ - SERCOM5_3_IRQn = 69, /**< 69 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ - SERCOM6_0_IRQn = 70, /**< 70 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ - SERCOM6_1_IRQn = 71, /**< 71 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ - SERCOM6_2_IRQn = 72, /**< 72 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ - SERCOM6_3_IRQn = 73, /**< 73 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ - SERCOM7_0_IRQn = 74, /**< 74 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ - SERCOM7_1_IRQn = 75, /**< 75 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ - SERCOM7_2_IRQn = 76, /**< 76 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ - SERCOM7_3_IRQn = 77, /**< 77 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ - USB_0_IRQn = 80, /**< 80 SAMD51P20A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ - USB_1_IRQn = 81, /**< 81 SAMD51P20A Universal Serial Bus (USB): USB_SOF_HSOF */ - USB_2_IRQn = 82, /**< 82 SAMD51P20A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ - USB_3_IRQn = 83, /**< 83 SAMD51P20A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ - TCC0_0_IRQn = 85, /**< 85 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ - TCC0_1_IRQn = 86, /**< 86 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ - TCC0_2_IRQn = 87, /**< 87 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ - TCC0_3_IRQn = 88, /**< 88 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ - TCC0_4_IRQn = 89, /**< 89 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ - TCC0_5_IRQn = 90, /**< 90 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ - TCC0_6_IRQn = 91, /**< 91 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ - TCC1_0_IRQn = 92, /**< 92 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ - TCC1_1_IRQn = 93, /**< 93 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ - TCC1_2_IRQn = 94, /**< 94 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ - TCC1_3_IRQn = 95, /**< 95 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ - TCC1_4_IRQn = 96, /**< 96 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ - TCC2_0_IRQn = 97, /**< 97 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ - TCC2_1_IRQn = 98, /**< 98 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ - TCC2_2_IRQn = 99, /**< 99 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ - TCC2_3_IRQn = 100, /**< 100 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ - TCC3_0_IRQn = 101, /**< 101 SAMD51P20A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ - TCC3_1_IRQn = 102, /**< 102 SAMD51P20A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ - TCC3_2_IRQn = 103, /**< 103 SAMD51P20A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ - TCC4_0_IRQn = 104, /**< 104 SAMD51P20A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ - TCC4_1_IRQn = 105, /**< 105 SAMD51P20A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ - TCC4_2_IRQn = 106, /**< 106 SAMD51P20A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ - TC0_IRQn = 107, /**< 107 SAMD51P20A Basic Timer Counter 0 (TC0) */ - TC1_IRQn = 108, /**< 108 SAMD51P20A Basic Timer Counter 1 (TC1) */ - TC2_IRQn = 109, /**< 109 SAMD51P20A Basic Timer Counter 2 (TC2) */ - TC3_IRQn = 110, /**< 110 SAMD51P20A Basic Timer Counter 3 (TC3) */ - TC4_IRQn = 111, /**< 111 SAMD51P20A Basic Timer Counter 4 (TC4) */ - TC5_IRQn = 112, /**< 112 SAMD51P20A Basic Timer Counter 5 (TC5) */ - TC6_IRQn = 113, /**< 113 SAMD51P20A Basic Timer Counter 6 (TC6) */ - TC7_IRQn = 114, /**< 114 SAMD51P20A Basic Timer Counter 7 (TC7) */ - PDEC_0_IRQn = 115, /**< 115 SAMD51P20A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ - PDEC_1_IRQn = 116, /**< 116 SAMD51P20A Quadrature Decodeur (PDEC): PDEC_MC_0 */ - PDEC_2_IRQn = 117, /**< 117 SAMD51P20A Quadrature Decodeur (PDEC): PDEC_MC_1 */ - ADC0_0_IRQn = 118, /**< 118 SAMD51P20A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ - ADC0_1_IRQn = 119, /**< 119 SAMD51P20A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ - ADC1_0_IRQn = 120, /**< 120 SAMD51P20A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ - ADC1_1_IRQn = 121, /**< 121 SAMD51P20A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ - AC_IRQn = 122, /**< 122 SAMD51P20A Analog Comparators (AC) */ - DAC_0_IRQn = 123, /**< 123 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ - DAC_1_IRQn = 124, /**< 124 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ - DAC_2_IRQn = 125, /**< 125 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ - DAC_3_IRQn = 126, /**< 126 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ - DAC_4_IRQn = 127, /**< 127 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ - I2S_IRQn = 128, /**< 128 SAMD51P20A Inter-IC Sound Interface (I2S) */ - PCC_IRQn = 129, /**< 129 SAMD51P20A Parallel Capture Controller (PCC) */ - AES_IRQn = 130, /**< 130 SAMD51P20A Advanced Encryption Standard (AES) */ - TRNG_IRQn = 131, /**< 131 SAMD51P20A True Random Generator (TRNG) */ - ICM_IRQn = 132, /**< 132 SAMD51P20A Integrity Check Monitor (ICM) */ - PUKCC_IRQn = 133, /**< 133 SAMD51P20A PUblic-Key Cryptography Controller (PUKCC) */ - QSPI_IRQn = 134, /**< 134 SAMD51P20A Quad SPI interface (QSPI) */ - SDHC0_IRQn = 135, /**< 135 SAMD51P20A SD/MMC Host Controller 0 (SDHC0) */ - SDHC1_IRQn = 136, /**< 136 SAMD51P20A SD/MMC Host Controller 1 (SDHC1) */ - - PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ -} IRQn_Type; - -typedef struct _DeviceVectors -{ - /* Stack pointer */ - void* pvStack; - - /* Cortex-M handlers */ - void* pfnReset_Handler; - void* pfnNonMaskableInt_Handler; - void* pfnHardFault_Handler; - void* pfnMemManagement_Handler; - void* pfnBusFault_Handler; - void* pfnUsageFault_Handler; - void* pvReservedM9; - void* pvReservedM8; - void* pvReservedM7; - void* pvReservedM6; - void* pfnSVCall_Handler; - void* pfnDebugMonitor_Handler; - void* pvReservedM3; - void* pfnPendSV_Handler; - void* pfnSysTick_Handler; - - /* Peripheral handlers */ - void* pfnPM_Handler; /* 0 Power Manager */ - void* pfnMCLK_Handler; /* 1 Main Clock */ - void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ - void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ - void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ - void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ - void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ - void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ - void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ - void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ - void* pfnWDT_Handler; /* 10 Watchdog Timer */ - void* pfnRTC_Handler; /* 11 Real-Time Counter */ - void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ - void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ - void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ - void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ - void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ - void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ - void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ - void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ - void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ - void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ - void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ - void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ - void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ - void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ - void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ - void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ - void* pfnFREQM_Handler; /* 28 Frequency Meter */ - void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ - void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ - void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ - void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ - void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ - void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ - void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ - void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ - void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ - void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ - void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ - void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ - void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ - void* pvReserved42; - void* pvReserved43; - void* pvReserved44; - void* pfnRAMECC_Handler; /* 45 RAM ECC */ - void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ - void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ - void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ - void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ - void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ - void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ - void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ - void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ - void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ - void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ - void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ - void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ - void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ - void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ - void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ - void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ - void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ - void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ - void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ - void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ - void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ - void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ - void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ - void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ - void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ - void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ - void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ - void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ - void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ - void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ - void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ - void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ - void* pvReserved78; - void* pvReserved79; - void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ - void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ - void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ - void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ - void* pvReserved84; - void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ - void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ - void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ - void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ - void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ - void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ - void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ - void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ - void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ - void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ - void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ - void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ - void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ - void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ - void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ - void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ - void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ - void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ - void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ - void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ - void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ - void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ - void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ - void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ - void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ - void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ - void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ - void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ - void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ - void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ - void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ - void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ - void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ - void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ - void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ - void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ - void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ - void* pfnAC_Handler; /* 122 Analog Comparators */ - void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ - void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ - void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ - void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ - void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ - void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ - void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ - void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ - void* pfnTRNG_Handler; /* 131 True Random Generator */ - void* pfnICM_Handler; /* 132 Integrity Check Monitor */ - void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ - void* pfnQSPI_Handler; /* 134 Quad SPI interface */ - void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ - void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ -} DeviceVectors; - -/* Cortex-M4 processor handlers */ -void Reset_Handler ( void ); -void NonMaskableInt_Handler ( void ); -void HardFault_Handler ( void ); -void MemManagement_Handler ( void ); -void BusFault_Handler ( void ); -void UsageFault_Handler ( void ); -void SVCall_Handler ( void ); -void DebugMonitor_Handler ( void ); -void PendSV_Handler ( void ); -void SysTick_Handler ( void ); - -/* Peripherals handlers */ -void PM_Handler ( void ); -void MCLK_Handler ( void ); -void OSCCTRL_0_Handler ( void ); -void OSCCTRL_1_Handler ( void ); -void OSCCTRL_2_Handler ( void ); -void OSCCTRL_3_Handler ( void ); -void OSCCTRL_4_Handler ( void ); -void OSC32KCTRL_Handler ( void ); -void SUPC_0_Handler ( void ); -void SUPC_1_Handler ( void ); -void WDT_Handler ( void ); -void RTC_Handler ( void ); -void EIC_0_Handler ( void ); -void EIC_1_Handler ( void ); -void EIC_2_Handler ( void ); -void EIC_3_Handler ( void ); -void EIC_4_Handler ( void ); -void EIC_5_Handler ( void ); -void EIC_6_Handler ( void ); -void EIC_7_Handler ( void ); -void EIC_8_Handler ( void ); -void EIC_9_Handler ( void ); -void EIC_10_Handler ( void ); -void EIC_11_Handler ( void ); -void EIC_12_Handler ( void ); -void EIC_13_Handler ( void ); -void EIC_14_Handler ( void ); -void EIC_15_Handler ( void ); -void FREQM_Handler ( void ); -void NVMCTRL_0_Handler ( void ); -void NVMCTRL_1_Handler ( void ); -void DMAC_0_Handler ( void ); -void DMAC_1_Handler ( void ); -void DMAC_2_Handler ( void ); -void DMAC_3_Handler ( void ); -void DMAC_4_Handler ( void ); -void EVSYS_0_Handler ( void ); -void EVSYS_1_Handler ( void ); -void EVSYS_2_Handler ( void ); -void EVSYS_3_Handler ( void ); -void EVSYS_4_Handler ( void ); -void PAC_Handler ( void ); -void RAMECC_Handler ( void ); -void SERCOM0_0_Handler ( void ); -void SERCOM0_1_Handler ( void ); -void SERCOM0_2_Handler ( void ); -void SERCOM0_3_Handler ( void ); -void SERCOM1_0_Handler ( void ); -void SERCOM1_1_Handler ( void ); -void SERCOM1_2_Handler ( void ); -void SERCOM1_3_Handler ( void ); -void SERCOM2_0_Handler ( void ); -void SERCOM2_1_Handler ( void ); -void SERCOM2_2_Handler ( void ); -void SERCOM2_3_Handler ( void ); -void SERCOM3_0_Handler ( void ); -void SERCOM3_1_Handler ( void ); -void SERCOM3_2_Handler ( void ); -void SERCOM3_3_Handler ( void ); -void SERCOM4_0_Handler ( void ); -void SERCOM4_1_Handler ( void ); -void SERCOM4_2_Handler ( void ); -void SERCOM4_3_Handler ( void ); -void SERCOM5_0_Handler ( void ); -void SERCOM5_1_Handler ( void ); -void SERCOM5_2_Handler ( void ); -void SERCOM5_3_Handler ( void ); -void SERCOM6_0_Handler ( void ); -void SERCOM6_1_Handler ( void ); -void SERCOM6_2_Handler ( void ); -void SERCOM6_3_Handler ( void ); -void SERCOM7_0_Handler ( void ); -void SERCOM7_1_Handler ( void ); -void SERCOM7_2_Handler ( void ); -void SERCOM7_3_Handler ( void ); -void USB_0_Handler ( void ); -void USB_1_Handler ( void ); -void USB_2_Handler ( void ); -void USB_3_Handler ( void ); -void TCC0_0_Handler ( void ); -void TCC0_1_Handler ( void ); -void TCC0_2_Handler ( void ); -void TCC0_3_Handler ( void ); -void TCC0_4_Handler ( void ); -void TCC0_5_Handler ( void ); -void TCC0_6_Handler ( void ); -void TCC1_0_Handler ( void ); -void TCC1_1_Handler ( void ); -void TCC1_2_Handler ( void ); -void TCC1_3_Handler ( void ); -void TCC1_4_Handler ( void ); -void TCC2_0_Handler ( void ); -void TCC2_1_Handler ( void ); -void TCC2_2_Handler ( void ); -void TCC2_3_Handler ( void ); -void TCC3_0_Handler ( void ); -void TCC3_1_Handler ( void ); -void TCC3_2_Handler ( void ); -void TCC4_0_Handler ( void ); -void TCC4_1_Handler ( void ); -void TCC4_2_Handler ( void ); -void TC0_Handler ( void ); -void TC1_Handler ( void ); -void TC2_Handler ( void ); -void TC3_Handler ( void ); -void TC4_Handler ( void ); -void TC5_Handler ( void ); -void TC6_Handler ( void ); -void TC7_Handler ( void ); -void PDEC_0_Handler ( void ); -void PDEC_1_Handler ( void ); -void PDEC_2_Handler ( void ); -void ADC0_0_Handler ( void ); -void ADC0_1_Handler ( void ); -void ADC1_0_Handler ( void ); -void ADC1_1_Handler ( void ); -void AC_Handler ( void ); -void DAC_0_Handler ( void ); -void DAC_1_Handler ( void ); -void DAC_2_Handler ( void ); -void DAC_3_Handler ( void ); -void DAC_4_Handler ( void ); -void I2S_Handler ( void ); -void PCC_Handler ( void ); -void AES_Handler ( void ); -void TRNG_Handler ( void ); -void ICM_Handler ( void ); -void PUKCC_Handler ( void ); -void QSPI_Handler ( void ); -void SDHC0_Handler ( void ); -void SDHC1_Handler ( void ); - -/* - * \brief Configuration of the Cortex-M4 Processor and Core Peripherals - */ - -#define __CM4_REV 1 /*!< Core revision r0p1 */ -#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ -#define __FPU_PRESENT 1 /*!< FPU present or not */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ -#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ -#define __VTOR_PRESENT 1 /*!< VTOR present or not */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - -/** - * \brief CMSIS includes - */ - -#include -#if !defined DONT_USE_CMSIS_INIT -#include "system_samd51.h" -#endif /* DONT_USE_CMSIS_INIT */ - -/*@}*/ - -/* ************************************************************************** */ -/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51P20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P20A_api Peripheral Software API */ -/*@{*/ - -#include "component/ac.h" -#include "component/adc.h" -#include "component/aes.h" -#include "component/ccl.h" -#include "component/cmcc.h" -#include "component/dac.h" -#include "component/dmac.h" -#include "component/dsu.h" -#include "component/eic.h" -#include "component/evsys.h" -#include "component/freqm.h" -#include "component/gclk.h" -#include "component/hmatrixb.h" -#include "component/icm.h" -#include "component/i2s.h" -#include "component/mclk.h" -#include "component/nvmctrl.h" -#include "component/oscctrl.h" -#include "component/osc32kctrl.h" -#include "component/pac.h" -#include "component/pcc.h" -#include "component/pdec.h" -#include "component/pm.h" -#include "component/port.h" -#include "component/qspi.h" -#include "component/ramecc.h" -#include "component/rstc.h" -#include "component/rtc.h" -#include "component/sdhc.h" -#include "component/sercom.h" -#include "component/supc.h" -#include "component/tc.h" -#include "component/tcc.h" -#include "component/trng.h" -#include "component/usb.h" -#include "component/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** REGISTERS ACCESS DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P20A_reg Registers Access Definitions */ -/*@{*/ - -#include "instance/ac.h" -#include "instance/adc0.h" -#include "instance/adc1.h" -#include "instance/aes.h" -#include "instance/ccl.h" -#include "instance/cmcc.h" -#include "instance/dac.h" -#include "instance/dmac.h" -#include "instance/dsu.h" -#include "instance/eic.h" -#include "instance/evsys.h" -#include "instance/freqm.h" -#include "instance/gclk.h" -#include "instance/hmatrix.h" -#include "instance/icm.h" -#include "instance/i2s.h" -#include "instance/mclk.h" -#include "instance/nvmctrl.h" -#include "instance/oscctrl.h" -#include "instance/osc32kctrl.h" -#include "instance/pac.h" -#include "instance/pcc.h" -#include "instance/pdec.h" -#include "instance/pm.h" -#include "instance/port.h" -#include "instance/pukcc.h" -#include "instance/qspi.h" -#include "instance/ramecc.h" -#include "instance/rstc.h" -#include "instance/rtc.h" -#include "instance/sdhc0.h" -#include "instance/sdhc1.h" -#include "instance/sercom0.h" -#include "instance/sercom1.h" -#include "instance/sercom2.h" -#include "instance/sercom3.h" -#include "instance/sercom4.h" -#include "instance/sercom5.h" -#include "instance/sercom6.h" -#include "instance/sercom7.h" -#include "instance/supc.h" -#include "instance/tc0.h" -#include "instance/tc1.h" -#include "instance/tc2.h" -#include "instance/tc3.h" -#include "instance/tc4.h" -#include "instance/tc5.h" -#include "instance/tc6.h" -#include "instance/tc7.h" -#include "instance/tcc0.h" -#include "instance/tcc1.h" -#include "instance/tcc2.h" -#include "instance/tcc3.h" -#include "instance/tcc4.h" -#include "instance/trng.h" -#include "instance/usb.h" -#include "instance/wdt.h" -/*@}*/ - -/* ************************************************************************** */ -/** PERIPHERAL ID DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P20A_id Peripheral Ids Definitions */ -/*@{*/ - -// Peripheral instances on HPB0 bridge -#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ -#define ID_PM 1 /**< \brief Power Manager (PM) */ -#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ -#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ -#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ -#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ -#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ -#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ -#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ -#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ -#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ -#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ -#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ -#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ -#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ -#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ - -// Peripheral instances on HPB1 bridge -#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ -#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ -#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ -#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ -#define ID_PORT 36 /**< \brief Port Module (PORT) */ -#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ -#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ -#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ -#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ -#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ -#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ -#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ -#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ -#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ -#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ - -// Peripheral instances on HPB2 bridge -#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ -#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ -#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ -#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ -#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ -#define ID_AC 72 /**< \brief Analog Comparators (AC) */ -#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ -#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ -#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ -#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ -#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ -#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ - -// Peripheral instances on HPB3 bridge -#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ -#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ -#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ -#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ -#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ -#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ -#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ -#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ -#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ -#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ -#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ -#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ - -// Peripheral instances on AHB (as if on bridge 4) -#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ -#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ - -#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ -/*@}*/ - -/* ************************************************************************** */ -/** BASE ADDRESS DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P20A_base Peripheral Base Address Definitions */ -/*@{*/ - -#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) -#define AC (0x42002000) /**< \brief (AC) APB Base Address */ -#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ -#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ -#define AES (0x42002400) /**< \brief (AES) APB Base Address */ -#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ -#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ -#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ -#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ -#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ -#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ -#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ -#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ -#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ -#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ -#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ -#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ -#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ -#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ -#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ -#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ -#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ -#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ -#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ -#define PM (0x40000400) /**< \brief (PM) APB Base Address */ -#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ -#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ -#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ -#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ -#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ -#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ -#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ -#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ -#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ -#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ -#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ -#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ -#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ -#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ -#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ -#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ -#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ -#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ -#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ -#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ -#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ -#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ -#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ -#define USB (0x41000000) /**< \brief (USB) APB Base Address */ -#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ -#else -#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ -#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ -#define AC_INSTS { AC } /**< \brief (AC) Instances List */ - -#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ -#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ -#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ -#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ - -#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ -#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ -#define AES_INSTS { AES } /**< \brief (AES) Instances List */ - -#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ -#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ -#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ - -#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ -#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ -#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ -#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ - -#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ -#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ -#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ - -#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ -#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ -#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ - -#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ -#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ -#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ - -#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ -#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ -#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ - -#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ -#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ -#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ - -#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ -#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ -#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ - -#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ -#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ -#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ - -#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ -#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ -#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ - -#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ -#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ -#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ - -#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ -#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ -#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ - -#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ -#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ -#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ - -#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ -#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ -#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ -#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ -#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ -#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ - -#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ -#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ -#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ - -#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ -#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ -#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ - -#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ -#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ -#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ - -#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ -#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ -#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ - -#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ -#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ -#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ - -#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ -#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ -#define PM_INSTS { PM } /**< \brief (PM) Instances List */ - -#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ -#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ -#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ - -#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ -#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ -#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ -#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ - -#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ -#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ -#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ -#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ - -#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ -#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ -#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ - -#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ -#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ -#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ - -#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ -#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ -#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ - -#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ -#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ -#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ -#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ - -#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ -#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ -#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ -#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ -#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ -#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ -#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ -#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ -#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ -#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ - -#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ -#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ -#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ - -#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ -#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ -#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ -#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ -#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ -#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ -#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ -#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ -#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ -#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ - -#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ -#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ -#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ -#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ -#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ -#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ -#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ - -#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ -#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ -#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ - -#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ -#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ -#define USB_INSTS { USB } /**< \brief (USB) Instances List */ - -#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ -#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ -#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ - -#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ -/*@}*/ - -/* ************************************************************************** */ -/** PORT DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ -/** \defgroup SAMD51P20A_port PORT Definitions */ -/*@{*/ - -#include "pio/samd51p20a.h" -/*@}*/ - -/* ************************************************************************** */ -/** MEMORY MAPPING DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ - -#define HSRAM_SIZE _UL_(0x00040000) /* 256 kB */ -#define FLASH_SIZE _UL_(0x00100000) /* 1024 kB */ -#define FLASH_PAGE_SIZE 512 -#define FLASH_NB_OF_PAGES 2048 -#define FLASH_USER_PAGE_SIZE 512 -#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ -#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ - -#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ -#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ -#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ -#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ -#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ -#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ -#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ -#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ -#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ -#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ -#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ -#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ -#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ -#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ -#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ -#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ -#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ -#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ -#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ - -#define DSU_DID_RESETVALUE _UL_(0x60060300) -#define ADC0_TOUCH_LINES_NUM 32 -#define PORT_GROUPS 4 - -/* ************************************************************************** */ -/** ELECTRICAL DEFINITIONS FOR SAMD51P20A */ -/* ************************************************************************** */ - - -#ifdef __cplusplus -} -#endif - -/*@}*/ - -#endif /* SAMD51P20A_H */ +/** + * \file + * + * \brief Header file for SAMD51P20A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SAMD51P20A_ +#define _SAMD51P20A_ + +/** + * \ingroup SAMD51_definitions + * \addtogroup SAMD51P20A_definitions SAMD51P20A definitions + * This file defines all structures and symbols for SAMD51P20A: + * - registers and bitfields + * - peripheral base address + * - peripheral ID + * - PIO definitions +*/ +/*@{*/ + +#ifdef __cplusplus + extern "C" { +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +#include +#ifndef __cplusplus +typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#else +typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */ +typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */ +typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */ +#endif +typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */ +typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */ +typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */ +typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */ +#endif + +#if !defined(SKIP_INTEGER_LITERALS) +#if defined(_U_) || defined(_L_) || defined(_UL_) + #error "Integer Literals macros already defined elsewhere" +#endif + +#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) +/* Macros that deal with adding suffixes to integer literal constants for C/C++ */ +#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */ +#define _L_(x) x ## L /**< C code: Long integer literal constant value */ +#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */ +#else /* Assembler */ +#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */ +#define _L_(x) x /**< Assembler: Long integer literal constant value */ +#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */ +#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +#endif /* SKIP_INTEGER_LITERALS */ + +/* ************************************************************************** */ +/** CMSIS DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P20A_cmsis CMSIS Definitions */ +/*@{*/ + +/** Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M4 Processor Exceptions Numbers *******************/ + NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13,/**< 3 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12,/**< 4 Memory Management Interrupt */ + BusFault_IRQn = -11,/**< 5 Bus Fault Interrupt */ + UsageFault_IRQn = -10,/**< 6 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< 11 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< 12 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< 15 System Tick Interrupt */ + /****** SAMD51P20A-specific Interrupt Numbers *********************/ + PM_IRQn = 0, /**< 0 SAMD51P20A Power Manager (PM) */ + MCLK_IRQn = 1, /**< 1 SAMD51P20A Main Clock (MCLK) */ + OSCCTRL_0_IRQn = 2, /**< 2 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 */ + OSCCTRL_1_IRQn = 3, /**< 3 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 */ + OSCCTRL_2_IRQn = 4, /**< 4 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY */ + OSCCTRL_3_IRQn = 5, /**< 5 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 */ + OSCCTRL_4_IRQn = 6, /**< 6 SAMD51P20A Oscillators Control (OSCCTRL): OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 */ + OSC32KCTRL_IRQn = 7, /**< 7 SAMD51P20A 32kHz Oscillators Control (OSC32KCTRL) */ + SUPC_0_IRQn = 8, /**< 8 SAMD51P20A Supply Controller (SUPC): SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY */ + SUPC_1_IRQn = 9, /**< 9 SAMD51P20A Supply Controller (SUPC): SUPC_BOD12DET, SUPC_BOD33DET */ + WDT_IRQn = 10, /**< 10 SAMD51P20A Watchdog Timer (WDT) */ + RTC_IRQn = 11, /**< 11 SAMD51P20A Real-Time Counter (RTC) */ + EIC_0_IRQn = 12, /**< 12 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_0 */ + EIC_1_IRQn = 13, /**< 13 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_1 */ + EIC_2_IRQn = 14, /**< 14 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_2 */ + EIC_3_IRQn = 15, /**< 15 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_3 */ + EIC_4_IRQn = 16, /**< 16 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_4 */ + EIC_5_IRQn = 17, /**< 17 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_5 */ + EIC_6_IRQn = 18, /**< 18 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_6 */ + EIC_7_IRQn = 19, /**< 19 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_7 */ + EIC_8_IRQn = 20, /**< 20 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_8 */ + EIC_9_IRQn = 21, /**< 21 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_9 */ + EIC_10_IRQn = 22, /**< 22 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_10 */ + EIC_11_IRQn = 23, /**< 23 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_11 */ + EIC_12_IRQn = 24, /**< 24 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_12 */ + EIC_13_IRQn = 25, /**< 25 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_13 */ + EIC_14_IRQn = 26, /**< 26 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_14 */ + EIC_15_IRQn = 27, /**< 27 SAMD51P20A External Interrupt Controller (EIC): EIC_EXTINT_15 */ + FREQM_IRQn = 28, /**< 28 SAMD51P20A Frequency Meter (FREQM) */ + NVMCTRL_0_IRQn = 29, /**< 29 SAMD51P20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 */ + NVMCTRL_1_IRQn = 30, /**< 30 SAMD51P20A Non-Volatile Memory Controller (NVMCTRL): NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 */ + DMAC_0_IRQn = 31, /**< 31 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 */ + DMAC_1_IRQn = 32, /**< 32 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 */ + DMAC_2_IRQn = 33, /**< 33 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 */ + DMAC_3_IRQn = 34, /**< 34 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 */ + DMAC_4_IRQn = 35, /**< 35 SAMD51P20A Direct Memory Access Controller (DMAC): DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 */ + EVSYS_0_IRQn = 36, /**< 36 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_0, EVSYS_OVR_0 */ + EVSYS_1_IRQn = 37, /**< 37 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_1, EVSYS_OVR_1 */ + EVSYS_2_IRQn = 38, /**< 38 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_2, EVSYS_OVR_2 */ + EVSYS_3_IRQn = 39, /**< 39 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_3, EVSYS_OVR_3 */ + EVSYS_4_IRQn = 40, /**< 40 SAMD51P20A Event System Interface (EVSYS): EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 */ + PAC_IRQn = 41, /**< 41 SAMD51P20A Peripheral Access Controller (PAC) */ + RAMECC_IRQn = 45, /**< 45 SAMD51P20A RAM ECC (RAMECC) */ + SERCOM0_0_IRQn = 46, /**< 46 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_0 */ + SERCOM0_1_IRQn = 47, /**< 47 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_1 */ + SERCOM0_2_IRQn = 48, /**< 48 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_2 */ + SERCOM0_3_IRQn = 49, /**< 49 SAMD51P20A Serial Communication Interface 0 (SERCOM0): SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 */ + SERCOM1_0_IRQn = 50, /**< 50 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_0 */ + SERCOM1_1_IRQn = 51, /**< 51 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_1 */ + SERCOM1_2_IRQn = 52, /**< 52 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_2 */ + SERCOM1_3_IRQn = 53, /**< 53 SAMD51P20A Serial Communication Interface 1 (SERCOM1): SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 */ + SERCOM2_0_IRQn = 54, /**< 54 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_0 */ + SERCOM2_1_IRQn = 55, /**< 55 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_1 */ + SERCOM2_2_IRQn = 56, /**< 56 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_2 */ + SERCOM2_3_IRQn = 57, /**< 57 SAMD51P20A Serial Communication Interface 2 (SERCOM2): SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 */ + SERCOM3_0_IRQn = 58, /**< 58 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_0 */ + SERCOM3_1_IRQn = 59, /**< 59 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_1 */ + SERCOM3_2_IRQn = 60, /**< 60 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_2 */ + SERCOM3_3_IRQn = 61, /**< 61 SAMD51P20A Serial Communication Interface 3 (SERCOM3): SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 */ + SERCOM4_0_IRQn = 62, /**< 62 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_0 */ + SERCOM4_1_IRQn = 63, /**< 63 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_1 */ + SERCOM4_2_IRQn = 64, /**< 64 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_2 */ + SERCOM4_3_IRQn = 65, /**< 65 SAMD51P20A Serial Communication Interface 4 (SERCOM4): SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 */ + SERCOM5_0_IRQn = 66, /**< 66 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_0 */ + SERCOM5_1_IRQn = 67, /**< 67 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_1 */ + SERCOM5_2_IRQn = 68, /**< 68 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_2 */ + SERCOM5_3_IRQn = 69, /**< 69 SAMD51P20A Serial Communication Interface 5 (SERCOM5): SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 */ + SERCOM6_0_IRQn = 70, /**< 70 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_0 */ + SERCOM6_1_IRQn = 71, /**< 71 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_1 */ + SERCOM6_2_IRQn = 72, /**< 72 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_2 */ + SERCOM6_3_IRQn = 73, /**< 73 SAMD51P20A Serial Communication Interface 6 (SERCOM6): SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 */ + SERCOM7_0_IRQn = 74, /**< 74 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_0 */ + SERCOM7_1_IRQn = 75, /**< 75 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_1 */ + SERCOM7_2_IRQn = 76, /**< 76 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_2 */ + SERCOM7_3_IRQn = 77, /**< 77 SAMD51P20A Serial Communication Interface 7 (SERCOM7): SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 */ + USB_0_IRQn = 80, /**< 80 SAMD51P20A Universal Serial Bus (USB): USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP */ + USB_1_IRQn = 81, /**< 81 SAMD51P20A Universal Serial Bus (USB): USB_SOF_HSOF */ + USB_2_IRQn = 82, /**< 82 SAMD51P20A Universal Serial Bus (USB): USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 */ + USB_3_IRQn = 83, /**< 83 SAMD51P20A Universal Serial Bus (USB): USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 */ + TCC0_0_IRQn = 85, /**< 85 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A */ + TCC0_1_IRQn = 86, /**< 86 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_0 */ + TCC0_2_IRQn = 87, /**< 87 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_1 */ + TCC0_3_IRQn = 88, /**< 88 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_2 */ + TCC0_4_IRQn = 89, /**< 89 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_3 */ + TCC0_5_IRQn = 90, /**< 90 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_4 */ + TCC0_6_IRQn = 91, /**< 91 SAMD51P20A Timer Counter Control 0 (TCC0): TCC0_MC_5 */ + TCC1_0_IRQn = 92, /**< 92 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A */ + TCC1_1_IRQn = 93, /**< 93 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_0 */ + TCC1_2_IRQn = 94, /**< 94 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_1 */ + TCC1_3_IRQn = 95, /**< 95 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_2 */ + TCC1_4_IRQn = 96, /**< 96 SAMD51P20A Timer Counter Control 1 (TCC1): TCC1_MC_3 */ + TCC2_0_IRQn = 97, /**< 97 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A */ + TCC2_1_IRQn = 98, /**< 98 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_MC_0 */ + TCC2_2_IRQn = 99, /**< 99 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_MC_1 */ + TCC2_3_IRQn = 100, /**< 100 SAMD51P20A Timer Counter Control 2 (TCC2): TCC2_MC_2 */ + TCC3_0_IRQn = 101, /**< 101 SAMD51P20A Timer Counter Control 3 (TCC3): TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A */ + TCC3_1_IRQn = 102, /**< 102 SAMD51P20A Timer Counter Control 3 (TCC3): TCC3_MC_0 */ + TCC3_2_IRQn = 103, /**< 103 SAMD51P20A Timer Counter Control 3 (TCC3): TCC3_MC_1 */ + TCC4_0_IRQn = 104, /**< 104 SAMD51P20A Timer Counter Control 4 (TCC4): TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A */ + TCC4_1_IRQn = 105, /**< 105 SAMD51P20A Timer Counter Control 4 (TCC4): TCC4_MC_0 */ + TCC4_2_IRQn = 106, /**< 106 SAMD51P20A Timer Counter Control 4 (TCC4): TCC4_MC_1 */ + TC0_IRQn = 107, /**< 107 SAMD51P20A Basic Timer Counter 0 (TC0) */ + TC1_IRQn = 108, /**< 108 SAMD51P20A Basic Timer Counter 1 (TC1) */ + TC2_IRQn = 109, /**< 109 SAMD51P20A Basic Timer Counter 2 (TC2) */ + TC3_IRQn = 110, /**< 110 SAMD51P20A Basic Timer Counter 3 (TC3) */ + TC4_IRQn = 111, /**< 111 SAMD51P20A Basic Timer Counter 4 (TC4) */ + TC5_IRQn = 112, /**< 112 SAMD51P20A Basic Timer Counter 5 (TC5) */ + TC6_IRQn = 113, /**< 113 SAMD51P20A Basic Timer Counter 6 (TC6) */ + TC7_IRQn = 114, /**< 114 SAMD51P20A Basic Timer Counter 7 (TC7) */ + PDEC_0_IRQn = 115, /**< 115 SAMD51P20A Quadrature Decodeur (PDEC): PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A */ + PDEC_1_IRQn = 116, /**< 116 SAMD51P20A Quadrature Decodeur (PDEC): PDEC_MC_0 */ + PDEC_2_IRQn = 117, /**< 117 SAMD51P20A Quadrature Decodeur (PDEC): PDEC_MC_1 */ + ADC0_0_IRQn = 118, /**< 118 SAMD51P20A Analog Digital Converter 0 (ADC0): ADC0_OVERRUN, ADC0_WINMON */ + ADC0_1_IRQn = 119, /**< 119 SAMD51P20A Analog Digital Converter 0 (ADC0): ADC0_RESRDY */ + ADC1_0_IRQn = 120, /**< 120 SAMD51P20A Analog Digital Converter 1 (ADC1): ADC1_OVERRUN, ADC1_WINMON */ + ADC1_1_IRQn = 121, /**< 121 SAMD51P20A Analog Digital Converter 1 (ADC1): ADC1_RESRDY */ + AC_IRQn = 122, /**< 122 SAMD51P20A Analog Comparators (AC) */ + DAC_0_IRQn = 123, /**< 123 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 */ + DAC_1_IRQn = 124, /**< 124 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_EMPTY_0 */ + DAC_2_IRQn = 125, /**< 125 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_EMPTY_1 */ + DAC_3_IRQn = 126, /**< 126 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_RESRDY_0 */ + DAC_4_IRQn = 127, /**< 127 SAMD51P20A Digital-to-Analog Converter (DAC): DAC_RESRDY_1 */ + I2S_IRQn = 128, /**< 128 SAMD51P20A Inter-IC Sound Interface (I2S) */ + PCC_IRQn = 129, /**< 129 SAMD51P20A Parallel Capture Controller (PCC) */ + AES_IRQn = 130, /**< 130 SAMD51P20A Advanced Encryption Standard (AES) */ + TRNG_IRQn = 131, /**< 131 SAMD51P20A True Random Generator (TRNG) */ + ICM_IRQn = 132, /**< 132 SAMD51P20A Integrity Check Monitor (ICM) */ + PUKCC_IRQn = 133, /**< 133 SAMD51P20A PUblic-Key Cryptography Controller (PUKCC) */ + QSPI_IRQn = 134, /**< 134 SAMD51P20A Quad SPI interface (QSPI) */ + SDHC0_IRQn = 135, /**< 135 SAMD51P20A SD/MMC Host Controller 0 (SDHC0) */ + SDHC1_IRQn = 136, /**< 136 SAMD51P20A SD/MMC Host Controller 1 (SDHC1) */ + + PERIPH_COUNT_IRQn = 137 /**< Number of peripheral IDs */ +} IRQn_Type; + +typedef struct _DeviceVectors +{ + /* Stack pointer */ + void* pvStack; + + /* Cortex-M handlers */ + void* pfnReset_Handler; + void* pfnNonMaskableInt_Handler; + void* pfnHardFault_Handler; + void* pfnMemManagement_Handler; + void* pfnBusFault_Handler; + void* pfnUsageFault_Handler; + void* pvReservedM9; + void* pvReservedM8; + void* pvReservedM7; + void* pvReservedM6; + void* pfnSVCall_Handler; + void* pfnDebugMonitor_Handler; + void* pvReservedM3; + void* pfnPendSV_Handler; + void* pfnSysTick_Handler; + + /* Peripheral handlers */ + void* pfnPM_Handler; /* 0 Power Manager */ + void* pfnMCLK_Handler; /* 1 Main Clock */ + void* pfnOSCCTRL_0_Handler; /* 2 Oscillators Control IRQ 0 */ + void* pfnOSCCTRL_1_Handler; /* 3 Oscillators Control IRQ 1 */ + void* pfnOSCCTRL_2_Handler; /* 4 Oscillators Control IRQ 2 */ + void* pfnOSCCTRL_3_Handler; /* 5 Oscillators Control IRQ 3 */ + void* pfnOSCCTRL_4_Handler; /* 6 Oscillators Control IRQ 4 */ + void* pfnOSC32KCTRL_Handler; /* 7 32kHz Oscillators Control */ + void* pfnSUPC_0_Handler; /* 8 Supply Controller IRQ 0 */ + void* pfnSUPC_1_Handler; /* 9 Supply Controller IRQ 1 */ + void* pfnWDT_Handler; /* 10 Watchdog Timer */ + void* pfnRTC_Handler; /* 11 Real-Time Counter */ + void* pfnEIC_0_Handler; /* 12 External Interrupt Controller IRQ 0 */ + void* pfnEIC_1_Handler; /* 13 External Interrupt Controller IRQ 1 */ + void* pfnEIC_2_Handler; /* 14 External Interrupt Controller IRQ 2 */ + void* pfnEIC_3_Handler; /* 15 External Interrupt Controller IRQ 3 */ + void* pfnEIC_4_Handler; /* 16 External Interrupt Controller IRQ 4 */ + void* pfnEIC_5_Handler; /* 17 External Interrupt Controller IRQ 5 */ + void* pfnEIC_6_Handler; /* 18 External Interrupt Controller IRQ 6 */ + void* pfnEIC_7_Handler; /* 19 External Interrupt Controller IRQ 7 */ + void* pfnEIC_8_Handler; /* 20 External Interrupt Controller IRQ 8 */ + void* pfnEIC_9_Handler; /* 21 External Interrupt Controller IRQ 9 */ + void* pfnEIC_10_Handler; /* 22 External Interrupt Controller IRQ 10 */ + void* pfnEIC_11_Handler; /* 23 External Interrupt Controller IRQ 11 */ + void* pfnEIC_12_Handler; /* 24 External Interrupt Controller IRQ 12 */ + void* pfnEIC_13_Handler; /* 25 External Interrupt Controller IRQ 13 */ + void* pfnEIC_14_Handler; /* 26 External Interrupt Controller IRQ 14 */ + void* pfnEIC_15_Handler; /* 27 External Interrupt Controller IRQ 15 */ + void* pfnFREQM_Handler; /* 28 Frequency Meter */ + void* pfnNVMCTRL_0_Handler; /* 29 Non-Volatile Memory Controller IRQ 0 */ + void* pfnNVMCTRL_1_Handler; /* 30 Non-Volatile Memory Controller IRQ 1 */ + void* pfnDMAC_0_Handler; /* 31 Direct Memory Access Controller IRQ 0 */ + void* pfnDMAC_1_Handler; /* 32 Direct Memory Access Controller IRQ 1 */ + void* pfnDMAC_2_Handler; /* 33 Direct Memory Access Controller IRQ 2 */ + void* pfnDMAC_3_Handler; /* 34 Direct Memory Access Controller IRQ 3 */ + void* pfnDMAC_4_Handler; /* 35 Direct Memory Access Controller IRQ 4 */ + void* pfnEVSYS_0_Handler; /* 36 Event System Interface IRQ 0 */ + void* pfnEVSYS_1_Handler; /* 37 Event System Interface IRQ 1 */ + void* pfnEVSYS_2_Handler; /* 38 Event System Interface IRQ 2 */ + void* pfnEVSYS_3_Handler; /* 39 Event System Interface IRQ 3 */ + void* pfnEVSYS_4_Handler; /* 40 Event System Interface IRQ 4 */ + void* pfnPAC_Handler; /* 41 Peripheral Access Controller */ + void* pvReserved42; + void* pvReserved43; + void* pvReserved44; + void* pfnRAMECC_Handler; /* 45 RAM ECC */ + void* pfnSERCOM0_0_Handler; /* 46 Serial Communication Interface 0 IRQ 0 */ + void* pfnSERCOM0_1_Handler; /* 47 Serial Communication Interface 0 IRQ 1 */ + void* pfnSERCOM0_2_Handler; /* 48 Serial Communication Interface 0 IRQ 2 */ + void* pfnSERCOM0_3_Handler; /* 49 Serial Communication Interface 0 IRQ 3 */ + void* pfnSERCOM1_0_Handler; /* 50 Serial Communication Interface 1 IRQ 0 */ + void* pfnSERCOM1_1_Handler; /* 51 Serial Communication Interface 1 IRQ 1 */ + void* pfnSERCOM1_2_Handler; /* 52 Serial Communication Interface 1 IRQ 2 */ + void* pfnSERCOM1_3_Handler; /* 53 Serial Communication Interface 1 IRQ 3 */ + void* pfnSERCOM2_0_Handler; /* 54 Serial Communication Interface 2 IRQ 0 */ + void* pfnSERCOM2_1_Handler; /* 55 Serial Communication Interface 2 IRQ 1 */ + void* pfnSERCOM2_2_Handler; /* 56 Serial Communication Interface 2 IRQ 2 */ + void* pfnSERCOM2_3_Handler; /* 57 Serial Communication Interface 2 IRQ 3 */ + void* pfnSERCOM3_0_Handler; /* 58 Serial Communication Interface 3 IRQ 0 */ + void* pfnSERCOM3_1_Handler; /* 59 Serial Communication Interface 3 IRQ 1 */ + void* pfnSERCOM3_2_Handler; /* 60 Serial Communication Interface 3 IRQ 2 */ + void* pfnSERCOM3_3_Handler; /* 61 Serial Communication Interface 3 IRQ 3 */ + void* pfnSERCOM4_0_Handler; /* 62 Serial Communication Interface 4 IRQ 0 */ + void* pfnSERCOM4_1_Handler; /* 63 Serial Communication Interface 4 IRQ 1 */ + void* pfnSERCOM4_2_Handler; /* 64 Serial Communication Interface 4 IRQ 2 */ + void* pfnSERCOM4_3_Handler; /* 65 Serial Communication Interface 4 IRQ 3 */ + void* pfnSERCOM5_0_Handler; /* 66 Serial Communication Interface 5 IRQ 0 */ + void* pfnSERCOM5_1_Handler; /* 67 Serial Communication Interface 5 IRQ 1 */ + void* pfnSERCOM5_2_Handler; /* 68 Serial Communication Interface 5 IRQ 2 */ + void* pfnSERCOM5_3_Handler; /* 69 Serial Communication Interface 5 IRQ 3 */ + void* pfnSERCOM6_0_Handler; /* 70 Serial Communication Interface 6 IRQ 0 */ + void* pfnSERCOM6_1_Handler; /* 71 Serial Communication Interface 6 IRQ 1 */ + void* pfnSERCOM6_2_Handler; /* 72 Serial Communication Interface 6 IRQ 2 */ + void* pfnSERCOM6_3_Handler; /* 73 Serial Communication Interface 6 IRQ 3 */ + void* pfnSERCOM7_0_Handler; /* 74 Serial Communication Interface 7 IRQ 0 */ + void* pfnSERCOM7_1_Handler; /* 75 Serial Communication Interface 7 IRQ 1 */ + void* pfnSERCOM7_2_Handler; /* 76 Serial Communication Interface 7 IRQ 2 */ + void* pfnSERCOM7_3_Handler; /* 77 Serial Communication Interface 7 IRQ 3 */ + void* pvReserved78; + void* pvReserved79; + void* pfnUSB_0_Handler; /* 80 Universal Serial Bus IRQ 0 */ + void* pfnUSB_1_Handler; /* 81 Universal Serial Bus IRQ 1 */ + void* pfnUSB_2_Handler; /* 82 Universal Serial Bus IRQ 2 */ + void* pfnUSB_3_Handler; /* 83 Universal Serial Bus IRQ 3 */ + void* pvReserved84; + void* pfnTCC0_0_Handler; /* 85 Timer Counter Control 0 IRQ 0 */ + void* pfnTCC0_1_Handler; /* 86 Timer Counter Control 0 IRQ 1 */ + void* pfnTCC0_2_Handler; /* 87 Timer Counter Control 0 IRQ 2 */ + void* pfnTCC0_3_Handler; /* 88 Timer Counter Control 0 IRQ 3 */ + void* pfnTCC0_4_Handler; /* 89 Timer Counter Control 0 IRQ 4 */ + void* pfnTCC0_5_Handler; /* 90 Timer Counter Control 0 IRQ 5 */ + void* pfnTCC0_6_Handler; /* 91 Timer Counter Control 0 IRQ 6 */ + void* pfnTCC1_0_Handler; /* 92 Timer Counter Control 1 IRQ 0 */ + void* pfnTCC1_1_Handler; /* 93 Timer Counter Control 1 IRQ 1 */ + void* pfnTCC1_2_Handler; /* 94 Timer Counter Control 1 IRQ 2 */ + void* pfnTCC1_3_Handler; /* 95 Timer Counter Control 1 IRQ 3 */ + void* pfnTCC1_4_Handler; /* 96 Timer Counter Control 1 IRQ 4 */ + void* pfnTCC2_0_Handler; /* 97 Timer Counter Control 2 IRQ 0 */ + void* pfnTCC2_1_Handler; /* 98 Timer Counter Control 2 IRQ 1 */ + void* pfnTCC2_2_Handler; /* 99 Timer Counter Control 2 IRQ 2 */ + void* pfnTCC2_3_Handler; /* 100 Timer Counter Control 2 IRQ 3 */ + void* pfnTCC3_0_Handler; /* 101 Timer Counter Control 3 IRQ 0 */ + void* pfnTCC3_1_Handler; /* 102 Timer Counter Control 3 IRQ 1 */ + void* pfnTCC3_2_Handler; /* 103 Timer Counter Control 3 IRQ 2 */ + void* pfnTCC4_0_Handler; /* 104 Timer Counter Control 4 IRQ 0 */ + void* pfnTCC4_1_Handler; /* 105 Timer Counter Control 4 IRQ 1 */ + void* pfnTCC4_2_Handler; /* 106 Timer Counter Control 4 IRQ 2 */ + void* pfnTC0_Handler; /* 107 Basic Timer Counter 0 */ + void* pfnTC1_Handler; /* 108 Basic Timer Counter 1 */ + void* pfnTC2_Handler; /* 109 Basic Timer Counter 2 */ + void* pfnTC3_Handler; /* 110 Basic Timer Counter 3 */ + void* pfnTC4_Handler; /* 111 Basic Timer Counter 4 */ + void* pfnTC5_Handler; /* 112 Basic Timer Counter 5 */ + void* pfnTC6_Handler; /* 113 Basic Timer Counter 6 */ + void* pfnTC7_Handler; /* 114 Basic Timer Counter 7 */ + void* pfnPDEC_0_Handler; /* 115 Quadrature Decodeur IRQ 0 */ + void* pfnPDEC_1_Handler; /* 116 Quadrature Decodeur IRQ 1 */ + void* pfnPDEC_2_Handler; /* 117 Quadrature Decodeur IRQ 2 */ + void* pfnADC0_0_Handler; /* 118 Analog Digital Converter 0 IRQ 0 */ + void* pfnADC0_1_Handler; /* 119 Analog Digital Converter 0 IRQ 1 */ + void* pfnADC1_0_Handler; /* 120 Analog Digital Converter 1 IRQ 0 */ + void* pfnADC1_1_Handler; /* 121 Analog Digital Converter 1 IRQ 1 */ + void* pfnAC_Handler; /* 122 Analog Comparators */ + void* pfnDAC_0_Handler; /* 123 Digital-to-Analog Converter IRQ 0 */ + void* pfnDAC_1_Handler; /* 124 Digital-to-Analog Converter IRQ 1 */ + void* pfnDAC_2_Handler; /* 125 Digital-to-Analog Converter IRQ 2 */ + void* pfnDAC_3_Handler; /* 126 Digital-to-Analog Converter IRQ 3 */ + void* pfnDAC_4_Handler; /* 127 Digital-to-Analog Converter IRQ 4 */ + void* pfnI2S_Handler; /* 128 Inter-IC Sound Interface */ + void* pfnPCC_Handler; /* 129 Parallel Capture Controller */ + void* pfnAES_Handler; /* 130 Advanced Encryption Standard */ + void* pfnTRNG_Handler; /* 131 True Random Generator */ + void* pfnICM_Handler; /* 132 Integrity Check Monitor */ + void* pfnPUKCC_Handler; /* 133 PUblic-Key Cryptography Controller */ + void* pfnQSPI_Handler; /* 134 Quad SPI interface */ + void* pfnSDHC0_Handler; /* 135 SD/MMC Host Controller 0 */ + void* pfnSDHC1_Handler; /* 136 SD/MMC Host Controller 1 */ +} DeviceVectors; + +/* Cortex-M4 processor handlers */ +void Reset_Handler ( void ); +void NonMaskableInt_Handler ( void ); +void HardFault_Handler ( void ); +void MemManagement_Handler ( void ); +void BusFault_Handler ( void ); +void UsageFault_Handler ( void ); +void SVCall_Handler ( void ); +void DebugMonitor_Handler ( void ); +void PendSV_Handler ( void ); +void SysTick_Handler ( void ); + +/* Peripherals handlers */ +void PM_Handler ( void ); +void MCLK_Handler ( void ); +void OSCCTRL_0_Handler ( void ); +void OSCCTRL_1_Handler ( void ); +void OSCCTRL_2_Handler ( void ); +void OSCCTRL_3_Handler ( void ); +void OSCCTRL_4_Handler ( void ); +void OSC32KCTRL_Handler ( void ); +void SUPC_0_Handler ( void ); +void SUPC_1_Handler ( void ); +void WDT_Handler ( void ); +void RTC_Handler ( void ); +void EIC_0_Handler ( void ); +void EIC_1_Handler ( void ); +void EIC_2_Handler ( void ); +void EIC_3_Handler ( void ); +void EIC_4_Handler ( void ); +void EIC_5_Handler ( void ); +void EIC_6_Handler ( void ); +void EIC_7_Handler ( void ); +void EIC_8_Handler ( void ); +void EIC_9_Handler ( void ); +void EIC_10_Handler ( void ); +void EIC_11_Handler ( void ); +void EIC_12_Handler ( void ); +void EIC_13_Handler ( void ); +void EIC_14_Handler ( void ); +void EIC_15_Handler ( void ); +void FREQM_Handler ( void ); +void NVMCTRL_0_Handler ( void ); +void NVMCTRL_1_Handler ( void ); +void DMAC_0_Handler ( void ); +void DMAC_1_Handler ( void ); +void DMAC_2_Handler ( void ); +void DMAC_3_Handler ( void ); +void DMAC_4_Handler ( void ); +void EVSYS_0_Handler ( void ); +void EVSYS_1_Handler ( void ); +void EVSYS_2_Handler ( void ); +void EVSYS_3_Handler ( void ); +void EVSYS_4_Handler ( void ); +void PAC_Handler ( void ); +void RAMECC_Handler ( void ); +void SERCOM0_0_Handler ( void ); +void SERCOM0_1_Handler ( void ); +void SERCOM0_2_Handler ( void ); +void SERCOM0_3_Handler ( void ); +void SERCOM1_0_Handler ( void ); +void SERCOM1_1_Handler ( void ); +void SERCOM1_2_Handler ( void ); +void SERCOM1_3_Handler ( void ); +void SERCOM2_0_Handler ( void ); +void SERCOM2_1_Handler ( void ); +void SERCOM2_2_Handler ( void ); +void SERCOM2_3_Handler ( void ); +void SERCOM3_0_Handler ( void ); +void SERCOM3_1_Handler ( void ); +void SERCOM3_2_Handler ( void ); +void SERCOM3_3_Handler ( void ); +void SERCOM4_0_Handler ( void ); +void SERCOM4_1_Handler ( void ); +void SERCOM4_2_Handler ( void ); +void SERCOM4_3_Handler ( void ); +void SERCOM5_0_Handler ( void ); +void SERCOM5_1_Handler ( void ); +void SERCOM5_2_Handler ( void ); +void SERCOM5_3_Handler ( void ); +void SERCOM6_0_Handler ( void ); +void SERCOM6_1_Handler ( void ); +void SERCOM6_2_Handler ( void ); +void SERCOM6_3_Handler ( void ); +void SERCOM7_0_Handler ( void ); +void SERCOM7_1_Handler ( void ); +void SERCOM7_2_Handler ( void ); +void SERCOM7_3_Handler ( void ); +void USB_0_Handler ( void ); +void USB_1_Handler ( void ); +void USB_2_Handler ( void ); +void USB_3_Handler ( void ); +void TCC0_0_Handler ( void ); +void TCC0_1_Handler ( void ); +void TCC0_2_Handler ( void ); +void TCC0_3_Handler ( void ); +void TCC0_4_Handler ( void ); +void TCC0_5_Handler ( void ); +void TCC0_6_Handler ( void ); +void TCC1_0_Handler ( void ); +void TCC1_1_Handler ( void ); +void TCC1_2_Handler ( void ); +void TCC1_3_Handler ( void ); +void TCC1_4_Handler ( void ); +void TCC2_0_Handler ( void ); +void TCC2_1_Handler ( void ); +void TCC2_2_Handler ( void ); +void TCC2_3_Handler ( void ); +void TCC3_0_Handler ( void ); +void TCC3_1_Handler ( void ); +void TCC3_2_Handler ( void ); +void TCC4_0_Handler ( void ); +void TCC4_1_Handler ( void ); +void TCC4_2_Handler ( void ); +void TC0_Handler ( void ); +void TC1_Handler ( void ); +void TC2_Handler ( void ); +void TC3_Handler ( void ); +void TC4_Handler ( void ); +void TC5_Handler ( void ); +void TC6_Handler ( void ); +void TC7_Handler ( void ); +void PDEC_0_Handler ( void ); +void PDEC_1_Handler ( void ); +void PDEC_2_Handler ( void ); +void ADC0_0_Handler ( void ); +void ADC0_1_Handler ( void ); +void ADC1_0_Handler ( void ); +void ADC1_1_Handler ( void ); +void AC_Handler ( void ); +void DAC_0_Handler ( void ); +void DAC_1_Handler ( void ); +void DAC_2_Handler ( void ); +void DAC_3_Handler ( void ); +void DAC_4_Handler ( void ); +void I2S_Handler ( void ); +void PCC_Handler ( void ); +void AES_Handler ( void ); +void TRNG_Handler ( void ); +void ICM_Handler ( void ); +void PUKCC_Handler ( void ); +void QSPI_Handler ( void ); +void SDHC0_Handler ( void ); +void SDHC1_Handler ( void ); + +/* + * \brief Configuration of the Cortex-M4 Processor and Core Peripherals + */ + +#define __CM4_REV 1 /*!< Core revision r0p1 */ +#define __DEBUG_LVL 3 /*!< Full debug plus DWT data matching */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */ +#define __TRACE_LVL 2 /*!< Full trace: ITM, DWT triggers and counters, ETM */ +#define __VTOR_PRESENT 1 /*!< VTOR present or not */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/** + * \brief CMSIS includes + */ + +#include +#if !defined DONT_USE_CMSIS_INIT +#include "system_samd51.h" +#endif /* DONT_USE_CMSIS_INIT */ + +/*@}*/ + +/* ************************************************************************** */ +/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD51P20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P20A_api Peripheral Software API */ +/*@{*/ + +#include "component/ac.h" +#include "component/adc.h" +#include "component/aes.h" +#include "component/ccl.h" +#include "component/cmcc.h" +#include "component/dac.h" +#include "component/dmac.h" +#include "component/dsu.h" +#include "component/eic.h" +#include "component/evsys.h" +#include "component/freqm.h" +#include "component/gclk.h" +#include "component/hmatrixb.h" +#include "component/icm.h" +#include "component/i2s.h" +#include "component/mclk.h" +#include "component/nvmctrl.h" +#include "component/oscctrl.h" +#include "component/osc32kctrl.h" +#include "component/pac.h" +#include "component/pcc.h" +#include "component/pdec.h" +#include "component/pm.h" +#include "component/port.h" +#include "component/qspi.h" +#include "component/ramecc.h" +#include "component/rstc.h" +#include "component/rtc.h" +#include "component/sdhc.h" +#include "component/sercom.h" +#include "component/supc.h" +#include "component/tc.h" +#include "component/tcc.h" +#include "component/trng.h" +#include "component/usb.h" +#include "component/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** REGISTERS ACCESS DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P20A_reg Registers Access Definitions */ +/*@{*/ + +#include "instance/ac.h" +#include "instance/adc0.h" +#include "instance/adc1.h" +#include "instance/aes.h" +#include "instance/ccl.h" +#include "instance/cmcc.h" +#include "instance/dac.h" +#include "instance/dmac.h" +#include "instance/dsu.h" +#include "instance/eic.h" +#include "instance/evsys.h" +#include "instance/freqm.h" +#include "instance/gclk.h" +#include "instance/hmatrix.h" +#include "instance/icm.h" +#include "instance/i2s.h" +#include "instance/mclk.h" +#include "instance/nvmctrl.h" +#include "instance/oscctrl.h" +#include "instance/osc32kctrl.h" +#include "instance/pac.h" +#include "instance/pcc.h" +#include "instance/pdec.h" +#include "instance/pm.h" +#include "instance/port.h" +#include "instance/pukcc.h" +#include "instance/qspi.h" +#include "instance/ramecc.h" +#include "instance/rstc.h" +#include "instance/rtc.h" +#include "instance/sdhc0.h" +#include "instance/sdhc1.h" +#include "instance/sercom0.h" +#include "instance/sercom1.h" +#include "instance/sercom2.h" +#include "instance/sercom3.h" +#include "instance/sercom4.h" +#include "instance/sercom5.h" +#include "instance/sercom6.h" +#include "instance/sercom7.h" +#include "instance/supc.h" +#include "instance/tc0.h" +#include "instance/tc1.h" +#include "instance/tc2.h" +#include "instance/tc3.h" +#include "instance/tc4.h" +#include "instance/tc5.h" +#include "instance/tc6.h" +#include "instance/tc7.h" +#include "instance/tcc0.h" +#include "instance/tcc1.h" +#include "instance/tcc2.h" +#include "instance/tcc3.h" +#include "instance/tcc4.h" +#include "instance/trng.h" +#include "instance/usb.h" +#include "instance/wdt.h" +/*@}*/ + +/* ************************************************************************** */ +/** PERIPHERAL ID DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P20A_id Peripheral Ids Definitions */ +/*@{*/ + +// Peripheral instances on HPB0 bridge +#define ID_PAC 0 /**< \brief Peripheral Access Controller (PAC) */ +#define ID_PM 1 /**< \brief Power Manager (PM) */ +#define ID_MCLK 2 /**< \brief Main Clock (MCLK) */ +#define ID_RSTC 3 /**< \brief Reset Controller (RSTC) */ +#define ID_OSCCTRL 4 /**< \brief Oscillators Control (OSCCTRL) */ +#define ID_OSC32KCTRL 5 /**< \brief 32kHz Oscillators Control (OSC32KCTRL) */ +#define ID_SUPC 6 /**< \brief Supply Controller (SUPC) */ +#define ID_GCLK 7 /**< \brief Generic Clock Generator (GCLK) */ +#define ID_WDT 8 /**< \brief Watchdog Timer (WDT) */ +#define ID_RTC 9 /**< \brief Real-Time Counter (RTC) */ +#define ID_EIC 10 /**< \brief External Interrupt Controller (EIC) */ +#define ID_FREQM 11 /**< \brief Frequency Meter (FREQM) */ +#define ID_SERCOM0 12 /**< \brief Serial Communication Interface 0 (SERCOM0) */ +#define ID_SERCOM1 13 /**< \brief Serial Communication Interface 1 (SERCOM1) */ +#define ID_TC0 14 /**< \brief Basic Timer Counter 0 (TC0) */ +#define ID_TC1 15 /**< \brief Basic Timer Counter 1 (TC1) */ + +// Peripheral instances on HPB1 bridge +#define ID_USB 32 /**< \brief Universal Serial Bus (USB) */ +#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */ +#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */ +#define ID_CMCC 35 /**< \brief Cortex M Cache Controller (CMCC) */ +#define ID_PORT 36 /**< \brief Port Module (PORT) */ +#define ID_DMAC 37 /**< \brief Direct Memory Access Controller (DMAC) */ +#define ID_HMATRIX 38 /**< \brief HSB Matrix (HMATRIX) */ +#define ID_EVSYS 39 /**< \brief Event System Interface (EVSYS) */ +#define ID_SERCOM2 41 /**< \brief Serial Communication Interface 2 (SERCOM2) */ +#define ID_SERCOM3 42 /**< \brief Serial Communication Interface 3 (SERCOM3) */ +#define ID_TCC0 43 /**< \brief Timer Counter Control 0 (TCC0) */ +#define ID_TCC1 44 /**< \brief Timer Counter Control 1 (TCC1) */ +#define ID_TC2 45 /**< \brief Basic Timer Counter 2 (TC2) */ +#define ID_TC3 46 /**< \brief Basic Timer Counter 3 (TC3) */ +#define ID_RAMECC 48 /**< \brief RAM ECC (RAMECC) */ + +// Peripheral instances on HPB2 bridge +#define ID_TCC2 67 /**< \brief Timer Counter Control 2 (TCC2) */ +#define ID_TCC3 68 /**< \brief Timer Counter Control 3 (TCC3) */ +#define ID_TC4 69 /**< \brief Basic Timer Counter 4 (TC4) */ +#define ID_TC5 70 /**< \brief Basic Timer Counter 5 (TC5) */ +#define ID_PDEC 71 /**< \brief Quadrature Decodeur (PDEC) */ +#define ID_AC 72 /**< \brief Analog Comparators (AC) */ +#define ID_AES 73 /**< \brief Advanced Encryption Standard (AES) */ +#define ID_TRNG 74 /**< \brief True Random Generator (TRNG) */ +#define ID_ICM 75 /**< \brief Integrity Check Monitor (ICM) */ +#define ID_PUKCC 76 /**< \brief PUblic-Key Cryptography Controller (PUKCC) */ +#define ID_QSPI 77 /**< \brief Quad SPI interface (QSPI) */ +#define ID_CCL 78 /**< \brief Configurable Custom Logic (CCL) */ + +// Peripheral instances on HPB3 bridge +#define ID_SERCOM4 96 /**< \brief Serial Communication Interface 4 (SERCOM4) */ +#define ID_SERCOM5 97 /**< \brief Serial Communication Interface 5 (SERCOM5) */ +#define ID_SERCOM6 98 /**< \brief Serial Communication Interface 6 (SERCOM6) */ +#define ID_SERCOM7 99 /**< \brief Serial Communication Interface 7 (SERCOM7) */ +#define ID_TCC4 100 /**< \brief Timer Counter Control 4 (TCC4) */ +#define ID_TC6 101 /**< \brief Basic Timer Counter 6 (TC6) */ +#define ID_TC7 102 /**< \brief Basic Timer Counter 7 (TC7) */ +#define ID_ADC0 103 /**< \brief Analog Digital Converter 0 (ADC0) */ +#define ID_ADC1 104 /**< \brief Analog Digital Converter 1 (ADC1) */ +#define ID_DAC 105 /**< \brief Digital-to-Analog Converter (DAC) */ +#define ID_I2S 106 /**< \brief Inter-IC Sound Interface (I2S) */ +#define ID_PCC 107 /**< \brief Parallel Capture Controller (PCC) */ + +// Peripheral instances on AHB (as if on bridge 4) +#define ID_SDHC0 128 /**< \brief SD/MMC Host Controller (SDHC0) */ +#define ID_SDHC1 129 /**< \brief SD/MMC Host Controller (SDHC1) */ + +#define ID_PERIPH_COUNT 130 /**< \brief Max number of peripheral IDs */ +/*@}*/ + +/* ************************************************************************** */ +/** BASE ADDRESS DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P20A_base Peripheral Base Address Definitions */ +/*@{*/ + +#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__) +#define AC (0x42002000) /**< \brief (AC) APB Base Address */ +#define ADC0 (0x43001C00) /**< \brief (ADC0) APB Base Address */ +#define ADC1 (0x43002000) /**< \brief (ADC1) APB Base Address */ +#define AES (0x42002400) /**< \brief (AES) APB Base Address */ +#define CCL (0x42003800) /**< \brief (CCL) APB Base Address */ +#define CMCC (0x41006000) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000) /**< \brief (CMCC) AHB Base Address */ +#define DAC (0x43002400) /**< \brief (DAC) APB Base Address */ +#define DMAC (0x4100A000) /**< \brief (DMAC) APB Base Address */ +#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */ +#define EIC (0x40002800) /**< \brief (EIC) APB Base Address */ +#define EVSYS (0x4100E000) /**< \brief (EVSYS) APB Base Address */ +#define FREQM (0x40002C00) /**< \brief (FREQM) APB Base Address */ +#define GCLK (0x40001C00) /**< \brief (GCLK) APB Base Address */ +#define HMATRIX (0x4100C000) /**< \brief (HMATRIX) APB Base Address */ +#define ICM (0x42002C00) /**< \brief (ICM) APB Base Address */ +#define I2S (0x43002800) /**< \brief (I2S) APB Base Address */ +#define MCLK (0x40000800) /**< \brief (MCLK) APB Base Address */ +#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */ +#define OSCCTRL (0x40001000) /**< \brief (OSCCTRL) APB Base Address */ +#define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) APB Base Address */ +#define PAC (0x40000000) /**< \brief (PAC) APB Base Address */ +#define PCC (0x43002C00) /**< \brief (PCC) APB Base Address */ +#define PDEC (0x42001C00) /**< \brief (PDEC) APB Base Address */ +#define PM (0x40000400) /**< \brief (PM) APB Base Address */ +#define PORT (0x41008000) /**< \brief (PORT) APB Base Address */ +#define PUKCC (0x42003000) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB (0x02000000) /**< \brief (PUKCC) AHB Base Address */ +#define QSPI (0x42003400) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000) /**< \brief (QSPI) AHB Base Address */ +#define RAMECC (0x41020000) /**< \brief (RAMECC) APB Base Address */ +#define RSTC (0x40000C00) /**< \brief (RSTC) APB Base Address */ +#define RTC (0x40002400) /**< \brief (RTC) APB Base Address */ +#define SDHC0 (0x45000000) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 (0x46000000) /**< \brief (SDHC1) AHB Base Address */ +#define SERCOM0 (0x40003000) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 (0x40003400) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 (0x41012000) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 (0x41014000) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 (0x43000000) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 (0x43000400) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 (0x43000800) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 (0x43000C00) /**< \brief (SERCOM7) APB Base Address */ +#define SUPC (0x40001800) /**< \brief (SUPC) APB Base Address */ +#define TC0 (0x40003800) /**< \brief (TC0) APB Base Address */ +#define TC1 (0x40003C00) /**< \brief (TC1) APB Base Address */ +#define TC2 (0x4101A000) /**< \brief (TC2) APB Base Address */ +#define TC3 (0x4101C000) /**< \brief (TC3) APB Base Address */ +#define TC4 (0x42001400) /**< \brief (TC4) APB Base Address */ +#define TC5 (0x42001800) /**< \brief (TC5) APB Base Address */ +#define TC6 (0x43001400) /**< \brief (TC6) APB Base Address */ +#define TC7 (0x43001800) /**< \brief (TC7) APB Base Address */ +#define TCC0 (0x41016000) /**< \brief (TCC0) APB Base Address */ +#define TCC1 (0x41018000) /**< \brief (TCC1) APB Base Address */ +#define TCC2 (0x42000C00) /**< \brief (TCC2) APB Base Address */ +#define TCC3 (0x42001000) /**< \brief (TCC3) APB Base Address */ +#define TCC4 (0x43001000) /**< \brief (TCC4) APB Base Address */ +#define TRNG (0x42002800) /**< \brief (TRNG) APB Base Address */ +#define USB (0x41000000) /**< \brief (USB) APB Base Address */ +#define WDT (0x40002000) /**< \brief (WDT) APB Base Address */ +#else +#define AC ((Ac *)0x42002000UL) /**< \brief (AC) APB Base Address */ +#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */ +#define AC_INSTS { AC } /**< \brief (AC) Instances List */ + +#define ADC0 ((Adc *)0x43001C00UL) /**< \brief (ADC0) APB Base Address */ +#define ADC1 ((Adc *)0x43002000UL) /**< \brief (ADC1) APB Base Address */ +#define ADC_INST_NUM 2 /**< \brief (ADC) Number of instances */ +#define ADC_INSTS { ADC0, ADC1 } /**< \brief (ADC) Instances List */ + +#define AES ((Aes *)0x42002400UL) /**< \brief (AES) APB Base Address */ +#define AES_INST_NUM 1 /**< \brief (AES) Number of instances */ +#define AES_INSTS { AES } /**< \brief (AES) Instances List */ + +#define CCL ((Ccl *)0x42003800UL) /**< \brief (CCL) APB Base Address */ +#define CCL_INST_NUM 1 /**< \brief (CCL) Number of instances */ +#define CCL_INSTS { CCL } /**< \brief (CCL) Instances List */ + +#define CMCC ((Cmcc *)0x41006000UL) /**< \brief (CMCC) APB Base Address */ +#define CMCC_AHB (0x03000000UL) /**< \brief (CMCC) AHB Base Address */ +#define CMCC_INST_NUM 1 /**< \brief (CMCC) Number of instances */ +#define CMCC_INSTS { CMCC } /**< \brief (CMCC) Instances List */ + +#define DAC ((Dac *)0x43002400UL) /**< \brief (DAC) APB Base Address */ +#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */ +#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */ + +#define DMAC ((Dmac *)0x4100A000UL) /**< \brief (DMAC) APB Base Address */ +#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */ +#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */ + +#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */ +#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */ +#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */ + +#define EIC ((Eic *)0x40002800UL) /**< \brief (EIC) APB Base Address */ +#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */ +#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */ + +#define EVSYS ((Evsys *)0x4100E000UL) /**< \brief (EVSYS) APB Base Address */ +#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */ +#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */ + +#define FREQM ((Freqm *)0x40002C00UL) /**< \brief (FREQM) APB Base Address */ +#define FREQM_INST_NUM 1 /**< \brief (FREQM) Number of instances */ +#define FREQM_INSTS { FREQM } /**< \brief (FREQM) Instances List */ + +#define GCLK ((Gclk *)0x40001C00UL) /**< \brief (GCLK) APB Base Address */ +#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */ +#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */ + +#define HMATRIX ((Hmatrixb *)0x4100C000UL) /**< \brief (HMATRIX) APB Base Address */ +#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */ +#define HMATRIXB_INSTS { HMATRIX } /**< \brief (HMATRIXB) Instances List */ + +#define ICM ((Icm *)0x42002C00UL) /**< \brief (ICM) APB Base Address */ +#define ICM_INST_NUM 1 /**< \brief (ICM) Number of instances */ +#define ICM_INSTS { ICM } /**< \brief (ICM) Instances List */ + +#define I2S ((I2s *)0x43002800UL) /**< \brief (I2S) APB Base Address */ +#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */ +#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */ + +#define MCLK ((Mclk *)0x40000800UL) /**< \brief (MCLK) APB Base Address */ +#define MCLK_INST_NUM 1 /**< \brief (MCLK) Number of instances */ +#define MCLK_INSTS { MCLK } /**< \brief (MCLK) Instances List */ + +#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */ +#define NVMCTRL_SW0 (0x00800080UL) /**< \brief (NVMCTRL) SW0 Base Address */ +#define NVMCTRL_TEMP_LOG (0x00800100UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */ +#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */ +#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */ +#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */ + +#define OSCCTRL ((Oscctrl *)0x40001000UL) /**< \brief (OSCCTRL) APB Base Address */ +#define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL) Number of instances */ +#define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL) Instances List */ + +#define OSC32KCTRL ((Osc32kctrl *)0x40001400UL) /**< \brief (OSC32KCTRL) APB Base Address */ +#define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */ +#define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */ + +#define PAC ((Pac *)0x40000000UL) /**< \brief (PAC) APB Base Address */ +#define PAC_INST_NUM 1 /**< \brief (PAC) Number of instances */ +#define PAC_INSTS { PAC } /**< \brief (PAC) Instances List */ + +#define PCC ((Pcc *)0x43002C00UL) /**< \brief (PCC) APB Base Address */ +#define PCC_INST_NUM 1 /**< \brief (PCC) Number of instances */ +#define PCC_INSTS { PCC } /**< \brief (PCC) Instances List */ + +#define PDEC ((Pdec *)0x42001C00UL) /**< \brief (PDEC) APB Base Address */ +#define PDEC_INST_NUM 1 /**< \brief (PDEC) Number of instances */ +#define PDEC_INSTS { PDEC } /**< \brief (PDEC) Instances List */ + +#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */ +#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */ +#define PM_INSTS { PM } /**< \brief (PM) Instances List */ + +#define PORT ((Port *)0x41008000UL) /**< \brief (PORT) APB Base Address */ +#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */ +#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */ + +#define PUKCC ((void *)0x42003000UL) /**< \brief (PUKCC) APB Base Address */ +#define PUKCC_AHB ((void *)0x02000000UL) /**< \brief (PUKCC) AHB Base Address */ +#define PUKCC_INST_NUM 1 /**< \brief (PUKCC) Number of instances */ +#define PUKCC_INSTS { PUKCC } /**< \brief (PUKCC) Instances List */ + +#define QSPI ((Qspi *)0x42003400UL) /**< \brief (QSPI) APB Base Address */ +#define QSPI_AHB (0x04000000UL) /**< \brief (QSPI) AHB Base Address */ +#define QSPI_INST_NUM 1 /**< \brief (QSPI) Number of instances */ +#define QSPI_INSTS { QSPI } /**< \brief (QSPI) Instances List */ + +#define RAMECC ((Ramecc *)0x41020000UL) /**< \brief (RAMECC) APB Base Address */ +#define RAMECC_INST_NUM 1 /**< \brief (RAMECC) Number of instances */ +#define RAMECC_INSTS { RAMECC } /**< \brief (RAMECC) Instances List */ + +#define RSTC ((Rstc *)0x40000C00UL) /**< \brief (RSTC) APB Base Address */ +#define RSTC_INST_NUM 1 /**< \brief (RSTC) Number of instances */ +#define RSTC_INSTS { RSTC } /**< \brief (RSTC) Instances List */ + +#define RTC ((Rtc *)0x40002400UL) /**< \brief (RTC) APB Base Address */ +#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */ +#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */ + +#define SDHC0 ((Sdhc *)0x45000000UL) /**< \brief (SDHC0) AHB Base Address */ +#define SDHC1 ((Sdhc *)0x46000000UL) /**< \brief (SDHC1) AHB Base Address */ +#define SDHC_INST_NUM 2 /**< \brief (SDHC) Number of instances */ +#define SDHC_INSTS { SDHC0, SDHC1 } /**< \brief (SDHC) Instances List */ + +#define SERCOM0 ((Sercom *)0x40003000UL) /**< \brief (SERCOM0) APB Base Address */ +#define SERCOM1 ((Sercom *)0x40003400UL) /**< \brief (SERCOM1) APB Base Address */ +#define SERCOM2 ((Sercom *)0x41012000UL) /**< \brief (SERCOM2) APB Base Address */ +#define SERCOM3 ((Sercom *)0x41014000UL) /**< \brief (SERCOM3) APB Base Address */ +#define SERCOM4 ((Sercom *)0x43000000UL) /**< \brief (SERCOM4) APB Base Address */ +#define SERCOM5 ((Sercom *)0x43000400UL) /**< \brief (SERCOM5) APB Base Address */ +#define SERCOM6 ((Sercom *)0x43000800UL) /**< \brief (SERCOM6) APB Base Address */ +#define SERCOM7 ((Sercom *)0x43000C00UL) /**< \brief (SERCOM7) APB Base Address */ +#define SERCOM_INST_NUM 8 /**< \brief (SERCOM) Number of instances */ +#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5, SERCOM6, SERCOM7 } /**< \brief (SERCOM) Instances List */ + +#define SUPC ((Supc *)0x40001800UL) /**< \brief (SUPC) APB Base Address */ +#define SUPC_INST_NUM 1 /**< \brief (SUPC) Number of instances */ +#define SUPC_INSTS { SUPC } /**< \brief (SUPC) Instances List */ + +#define TC0 ((Tc *)0x40003800UL) /**< \brief (TC0) APB Base Address */ +#define TC1 ((Tc *)0x40003C00UL) /**< \brief (TC1) APB Base Address */ +#define TC2 ((Tc *)0x4101A000UL) /**< \brief (TC2) APB Base Address */ +#define TC3 ((Tc *)0x4101C000UL) /**< \brief (TC3) APB Base Address */ +#define TC4 ((Tc *)0x42001400UL) /**< \brief (TC4) APB Base Address */ +#define TC5 ((Tc *)0x42001800UL) /**< \brief (TC5) APB Base Address */ +#define TC6 ((Tc *)0x43001400UL) /**< \brief (TC6) APB Base Address */ +#define TC7 ((Tc *)0x43001800UL) /**< \brief (TC7) APB Base Address */ +#define TC_INST_NUM 8 /**< \brief (TC) Number of instances */ +#define TC_INSTS { TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */ + +#define TCC0 ((Tcc *)0x41016000UL) /**< \brief (TCC0) APB Base Address */ +#define TCC1 ((Tcc *)0x41018000UL) /**< \brief (TCC1) APB Base Address */ +#define TCC2 ((Tcc *)0x42000C00UL) /**< \brief (TCC2) APB Base Address */ +#define TCC3 ((Tcc *)0x42001000UL) /**< \brief (TCC3) APB Base Address */ +#define TCC4 ((Tcc *)0x43001000UL) /**< \brief (TCC4) APB Base Address */ +#define TCC_INST_NUM 5 /**< \brief (TCC) Number of instances */ +#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3, TCC4 } /**< \brief (TCC) Instances List */ + +#define TRNG ((Trng *)0x42002800UL) /**< \brief (TRNG) APB Base Address */ +#define TRNG_INST_NUM 1 /**< \brief (TRNG) Number of instances */ +#define TRNG_INSTS { TRNG } /**< \brief (TRNG) Instances List */ + +#define USB ((Usb *)0x41000000UL) /**< \brief (USB) APB Base Address */ +#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */ +#define USB_INSTS { USB } /**< \brief (USB) Instances List */ + +#define WDT ((Wdt *)0x40002000UL) /**< \brief (WDT) APB Base Address */ +#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */ +#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */ + +#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ +/*@}*/ + +/* ************************************************************************** */ +/** PORT DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ +/** \defgroup SAMD51P20A_port PORT Definitions */ +/*@{*/ + +#include "pio/samd51p20a.h" +/*@}*/ + +/* ************************************************************************** */ +/** MEMORY MAPPING DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ + +#define HSRAM_SIZE _UL_(0x00040000) /* 256 kB */ +#define FLASH_SIZE _UL_(0x00100000) /* 1024 kB */ +#define FLASH_PAGE_SIZE 512 +#define FLASH_NB_OF_PAGES 2048 +#define FLASH_USER_PAGE_SIZE 512 +#define BKUPRAM_SIZE _UL_(0x00002000) /* 8 kB */ +#define QSPI_SIZE _UL_(0x01000000) /* 16384 kB */ + +#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */ +#define CMCC_DATARAM_ADDR _UL_(0x03000000) /**< CMCC_DATARAM base address */ +#define CMCC_DATARAM_SIZE _UL_(0x00001000) /**< CMCC_DATARAM size */ +#define CMCC_TAGRAM_ADDR _UL_(0x03001000) /**< CMCC_TAGRAM base address */ +#define CMCC_TAGRAM_SIZE _UL_(0x00000400) /**< CMCC_TAGRAM size */ +#define CMCC_VALIDRAM_ADDR _UL_(0x03002000) /**< CMCC_VALIDRAM base address */ +#define CMCC_VALIDRAM_SIZE _UL_(0x00000040) /**< CMCC_VALIDRAM size */ +#define HSRAM_ADDR _UL_(0x20000000) /**< HSRAM base address */ +#define HSRAM_ETB_ADDR _UL_(0x20000000) /**< HSRAM_ETB base address */ +#define HSRAM_ETB_SIZE _UL_(0x00008000) /**< HSRAM_ETB size */ +#define HSRAM_RET1_ADDR _UL_(0x20000000) /**< HSRAM_RET1 base address */ +#define HSRAM_RET1_SIZE _UL_(0x00008000) /**< HSRAM_RET1 size */ +#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */ +#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */ +#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */ +#define HPB3_ADDR _UL_(0x43000000) /**< HPB3 base address */ +#define SEEPROM_ADDR _UL_(0x44000000) /**< SEEPROM base address */ +#define BKUPRAM_ADDR _UL_(0x47000000) /**< BKUPRAM base address */ +#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */ + +#define DSU_DID_RESETVALUE _UL_(0x60060300) +#define ADC0_TOUCH_LINES_NUM 32 +#define PORT_GROUPS 4 + +/* ************************************************************************** */ +/** ELECTRICAL DEFINITIONS FOR SAMD51P20A */ +/* ************************************************************************** */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ + +#endif /* SAMD51P20A_H */ diff --git a/lib/samd51/samd51a/include/system_samd51.h b/lib/samd51/samd51a/include/system_samd51.h index dcb8564..1f6123d 100644 --- a/lib/samd51/samd51a/include/system_samd51.h +++ b/lib/samd51/samd51a/include/system_samd51.h @@ -1,48 +1,48 @@ -/** - * \file - * - * \brief Low-level initialization functions called upon chip startup - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#ifndef _SYSTEM_SAMD51_H_INCLUDED_ -#define _SYSTEM_SAMD51_H_INCLUDED_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ - -void SystemInit(void); -void SystemCoreClockUpdate(void); - -#ifdef __cplusplus -} -#endif - -#endif /* SYSTEM_SAMD51_H_INCLUDED */ +/** + * \file + * + * \brief Low-level initialization functions called upon chip startup + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + +#ifndef _SYSTEM_SAMD51_H_INCLUDED_ +#define _SYSTEM_SAMD51_H_INCLUDED_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +void SystemInit(void); +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_SAMD51_H_INCLUDED */ diff --git a/out/autoconf.h b/out/autoconf.h deleted file mode 100644 index 060e648..0000000 --- a/out/autoconf.h +++ /dev/null @@ -1,208 +0,0 @@ -#define CONFIG_LOW_LEVEL_OPTIONS 0 -#define CONFIG_MACH_AVR 0 -#define CONFIG_MACH_ATSAM 0 -#define CONFIG_MACH_ATSAMD 0 -#define CONFIG_MACH_LPC176X 0 -#define CONFIG_MACH_STM32 0 -#define CONFIG_MACH_RP2040 0 -#define CONFIG_MACH_PRU 0 -#define CONFIG_MACH_LINUX 1 -#define CONFIG_MACH_SIMU 0 -#define CONFIG_AVR_SELECT 0 -#define CONFIG_BOARD_DIRECTORY "linux" -#define CONFIG_MACH_atmega2560 0 -#define CONFIG_MACH_atmega1280 0 -#define CONFIG_MACH_at90usb1286 0 -#define CONFIG_MACH_at90usb646 0 -#define CONFIG_MACH_atmega32u4 0 -#define CONFIG_MACH_atmega1284p 0 -#define CONFIG_MACH_atmega644p 0 -#define CONFIG_MACH_atmega328p 0 -#define CONFIG_MACH_atmega328 0 -#define CONFIG_MACH_atmega168 0 -#define CONFIG_MCU "" -#define CONFIG_AVRDUDE_PROTOCOL "" -#define CONFIG_AVR_FREQ_16000000 0 -#define CONFIG_AVR_FREQ_20000000 0 -#define CONFIG_AVR_FREQ_8000000 0 -#define CONFIG_CLOCK_FREQ 50000000 -#define CONFIG_CLEAR_PRESCALER 0 -#define CONFIG_AVR_CLKPR 0 -#define CONFIG_AVR_STACK_SIZE 0 -#define CONFIG_AVR_WATCHDOG 0 -#define CONFIG_USBSERIAL 0 -#define CONFIG_SERIAL 0 -#define CONFIG_AVR_USB 0 -#define CONFIG_AVR_SERIAL_UART0 0 -#define CONFIG_AVR_SERIAL_UART1 0 -#define CONFIG_AVR_SERIAL_UART2 0 -#define CONFIG_AVR_SERIAL_UART3 0 -#define CONFIG_SERIAL_BAUD_U2X 0 -#define CONFIG_SERIAL_PORT 0 -#define CONFIG_SIMULAVR 0 -#define CONFIG_ATSAM_SELECT 0 -#define CONFIG_MACH_SAM3X8E 0 -#define CONFIG_MACH_SAM3X8C 0 -#define CONFIG_MACH_SAM4S8C 0 -#define CONFIG_MACH_SAM4E8E 0 -#define CONFIG_MACH_SAME70Q20B 0 -#define CONFIG_MACH_SAM3X 0 -#define CONFIG_MACH_SAM4 0 -#define CONFIG_MACH_SAM4S 0 -#define CONFIG_MACH_SAM4E 0 -#define CONFIG_MACH_SAME70 0 -#define CONFIG_FLASH_START 0x -#define CONFIG_FLASH_SIZE 0x -#define CONFIG_RAM_START 0x -#define CONFIG_RAM_SIZE 0x -#define CONFIG_STACK_SIZE 0 -#define CONFIG_ATSAM_USB 0 -#define CONFIG_ATSAM_SERIAL 0 -#define CONFIG_ATSAMD_SELECT 0 -#define CONFIG_HAVE_SERCOM 0 -#define CONFIG_MACH_SAMD21G18 0 -#define CONFIG_MACH_SAMD21E18 0 -#define CONFIG_MACH_SAMD21E15 0 -#define CONFIG_MACH_SAMD51G19 0 -#define CONFIG_MACH_SAMD51J19 0 -#define CONFIG_MACH_SAMD51N19 0 -#define CONFIG_MACH_SAMD51P20 0 -#define CONFIG_MACH_SAMD21 0 -#define CONFIG_MACH_SAMD51 0 -#define CONFIG_CLOCK_REF_X32K 0 -#define CONFIG_CLOCK_REF_X25M 0 -#define CONFIG_CLOCK_REF_INTERNAL 0 -#define CONFIG_SAMD51_FREQ_120 0 -#define CONFIG_SAMD51_FREQ_150 0 -#define CONFIG_SAMD51_FREQ_180 0 -#define CONFIG_SAMD51_FREQ_200 0 -#define CONFIG_FLASH_START_2000 0 -#define CONFIG_FLASH_START_4000 0 -#define CONFIG_FLASH_START_0000 0 -#define CONFIG_ATSAMD_USB 0 -#define CONFIG_ATSAMD_SERIAL 0 -#define CONFIG_LPC_SELECT 0 -#define CONFIG_MACH_LPC1768 0 -#define CONFIG_MACH_LPC1769 0 -#define CONFIG_SMOOTHIEWARE_BOOTLOADER 0 -#define CONFIG_LPC_USB 0 -#define CONFIG_LPC_SERIAL_UART0_P03_P02 0 -#define CONFIG_LPC_SERIAL_UART3_P429_P428 0 -#define CONFIG_STM32_SELECT 0 -#define CONFIG_MACH_STM32F103 0 -#define CONFIG_MACH_STM32F207 0 -#define CONFIG_MACH_STM32F401 0 -#define CONFIG_MACH_STM32F405 0 -#define CONFIG_MACH_STM32F407 0 -#define CONFIG_MACH_STM32F429 0 -#define CONFIG_MACH_STM32F446 0 -#define CONFIG_MACH_STM32F031 0 -#define CONFIG_MACH_STM32F042 0 -#define CONFIG_MACH_STM32F070 0 -#define CONFIG_MACH_STM32F072 0 -#define CONFIG_MACH_STM32G0B1 0 -#define CONFIG_MACH_STM32H743 0 -#define CONFIG_MACH_STM32H750 0 -#define CONFIG_MACH_STM32F103x6 0 -#define CONFIG_MACH_STM32F0 0 -#define CONFIG_MACH_STM32F1 0 -#define CONFIG_MACH_STM32F2 0 -#define CONFIG_MACH_STM32F4 0 -#define CONFIG_MACH_STM32G0 0 -#define CONFIG_MACH_STM32H7 0 -#define CONFIG_MACH_STM32F0x2 0 -#define CONFIG_MACH_STM32F4x5 0 -#define CONFIG_HAVE_STM32_USBFS 0 -#define CONFIG_HAVE_STM32_USBOTG 0 -#define CONFIG_HAVE_STM32_CANBUS 0 -#define CONFIG_HAVE_STM32_FDCANBUS 0 -#define CONFIG_HAVE_STM32_USBCANBUS 0 -#define CONFIG_STM32F103GD_DISABLE_SWD 0 -#define CONFIG_STM32_FLASH_START_2000 0 -#define CONFIG_STM32_FLASH_START_5000 0 -#define CONFIG_STM32_FLASH_START_7000 0 -#define CONFIG_STM32_FLASH_START_8000 0 -#define CONFIG_STM32_FLASH_START_8800 0 -#define CONFIG_STM32_FLASH_START_20200 0 -#define CONFIG_STM32_FLASH_START_C000 0 -#define CONFIG_STM32_FLASH_START_10000 0 -#define CONFIG_STM32_FLASH_START_800 0 -#define CONFIG_STM32_FLASH_START_1000 0 -#define CONFIG_STM32_FLASH_START_4000 0 -#define CONFIG_STM32_FLASH_START_20000 0 -#define CONFIG_STM32_FLASH_START_0000 0 -#define CONFIG_ARMCM_RAM_VECTORTABLE 0 -#define CONFIG_STM32_CLOCK_REF_8M 0 -#define CONFIG_STM32_CLOCK_REF_12M 0 -#define CONFIG_STM32_CLOCK_REF_16M 0 -#define CONFIG_STM32_CLOCK_REF_25M 0 -#define CONFIG_STM32_CLOCK_REF_INTERNAL 0 -#define CONFIG_CLOCK_REF_FREQ 0 -#define CONFIG_STM32F0_TRIM 0 -#define CONFIG_STM32_USB_PA11_PA12 0 -#define CONFIG_STM32_USB_PA11_PA12_REMAP 0 -#define CONFIG_STM32_USB_PB14_PB15 0 -#define CONFIG_STM32_SERIAL_USART1 0 -#define CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 0 -#define CONFIG_STM32_SERIAL_USART2 0 -#define CONFIG_STM32_SERIAL_USART2_ALT_PA15_PA14 0 -#define CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 0 -#define CONFIG_STM32_SERIAL_USART3 0 -#define CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 0 -#define CONFIG_STM32_SERIAL_UART4 0 -#define CONFIG_STM32_CANBUS_PA11_PA12 0 -#define CONFIG_STM32_CANBUS_PA11_PA12_REMAP 0 -#define CONFIG_STM32_MMENU_CANBUS_PB8_PB9 0 -#define CONFIG_STM32_MMENU_CANBUS_PI9_PH13 0 -#define CONFIG_STM32_MMENU_CANBUS_PB5_PB6 0 -#define CONFIG_STM32_MMENU_CANBUS_PB12_PB13 0 -#define CONFIG_STM32_MMENU_CANBUS_PD0_PD1 0 -#define CONFIG_STM32_MMENU_CANBUS_PB0_PB1 0 -#define CONFIG_STM32_USBCANBUS_PA11_PA12 0 -#define CONFIG_STM32_CMENU_CANBUS_PB8_PB9 0 -#define CONFIG_STM32_CMENU_CANBUS_PI9_PH13 0 -#define CONFIG_STM32_CMENU_CANBUS_PB5_PB6 0 -#define CONFIG_STM32_CMENU_CANBUS_PB12_PB13 0 -#define CONFIG_STM32_CMENU_CANBUS_PD0_PD1 0 -#define CONFIG_STM32_CMENU_CANBUS_PB0_PB1 0 -#define CONFIG_STM32_CANBUS_PB8_PB9 0 -#define CONFIG_STM32_CANBUS_PI9_PH13 0 -#define CONFIG_STM32_CANBUS_PB5_PB6 0 -#define CONFIG_STM32_CANBUS_PB12_PB13 0 -#define CONFIG_STM32_CANBUS_PD0_PD1 0 -#define CONFIG_STM32_CANBUS_PB0_PB1 0 -#define CONFIG_RP2040_SELECT 0 -#define CONFIG_RP2040_FLASH_W25Q080 0 -#define CONFIG_RP2040_FLASH_GENERIC_03 0 -#define CONFIG_RP2040_STAGE2_FILE "" -#define CONFIG_RP2040_STAGE2_CLKDIV 0 -#define CONFIG_RP2040_USB 0 -#define CONFIG_RP2040_SERIAL_UART0 0 -#define CONFIG_RP2040_CANBUS 0 -#define CONFIG_RP2040_USBCANBUS 0 -#define CONFIG_RP2040_CANBUS_GPIO_RX 0 -#define CONFIG_RP2040_CANBUS_GPIO_TX 0 -#define CONFIG_PRU_SELECT 0 -#define CONFIG_LINUX_SELECT 1 -#define CONFIG_SIMULATOR_SELECT 0 -#define CONFIG_SERIAL_BAUD 0 -#define CONFIG_USBCANBUS 0 -#define CONFIG_USB_VENDOR_ID 0x1d50 -#define CONFIG_USB_DEVICE_ID 0x614e -#define CONFIG_USB_SERIAL_NUMBER_CHIPID 0 -#define CONFIG_USB_SERIAL_NUMBER "12345" -#define CONFIG_CANSERIAL 0 -#define CONFIG_CANBUS 0 -#define CONFIG_CANBUS_FREQUENCY 500000 -#define CONFIG_CANBUS_FILTER 0 -#define CONFIG_INITIAL_PINS "" -#define CONFIG_HAVE_GPIO 1 -#define CONFIG_HAVE_GPIO_ADC 1 -#define CONFIG_HAVE_GPIO_SPI 1 -#define CONFIG_HAVE_GPIO_I2C 1 -#define CONFIG_HAVE_GPIO_HARD_PWM 1 -#define CONFIG_HAVE_GPIO_BITBANGING 1 -#define CONFIG_HAVE_STRICT_TIMING 0 -#define CONFIG_HAVE_CHIPID 0 -#define CONFIG_HAVE_STEPPER_BOTH_EDGE 0 -#define CONFIG_INLINE_STEPPER_HACK 1 diff --git a/out/board-link b/out/board-link deleted file mode 100644 index 7c13d22..0000000 --- a/out/board-link +++ /dev/null @@ -1 +0,0 @@ -# Makefile board-link rule diff --git a/out/compile_time_request.c b/out/compile_time_request.c deleted file mode 100644 index b686301..0000000 --- a/out/compile_time_request.c +++ /dev/null @@ -1,1747 +0,0 @@ - -/* DO NOT EDIT! This is an autogenerated file. See scripts/buildcommands.py. */ - -#include "board/irq.h" -#include "board/pgm.h" -#include "command.h" -#include "compiler.h" -#include "initial_pins.h" - -void -ctr_run_initfuncs(void) -{ - extern void alloc_init(void); - alloc_init(); - extern void initial_pins_setup(void); - initial_pins_setup(); - extern void timer_init(void); - timer_init(); -} - -void -ctr_run_shutdownfuncs(void) -{ - extern void sendf_shutdown(void); - sendf_shutdown(); - extern void move_reset(void); - move_reset(); - extern void digital_out_shutdown(void); - digital_out_shutdown(); - extern void stepper_shutdown(void); - stepper_shutdown(); - extern void trsync_shutdown(void); - trsync_shutdown(); - extern void analog_in_shutdown(void); - analog_in_shutdown(); - extern void spidev_shutdown(void); - spidev_shutdown(); - extern void pwm_shutdown(void); - pwm_shutdown(); - extern void st7920_shutdown(void); - st7920_shutdown(); - extern void hd44780_shutdown(void); - hd44780_shutdown(); - extern void tmcuart_shutdown(void); - tmcuart_shutdown(); - extern void pca9685_shutdown(void); - pca9685_shutdown(); -} - -void -ctr_run_taskfuncs(void) -{ - irq_poll(); - extern void trsync_task(void); - trsync_task(); - irq_poll(); - extern void analog_in_task(void); - analog_in_task(); - irq_poll(); - extern void thermocouple_task(void); - thermocouple_task(); - irq_poll(); - extern void adxl345_task(void); - adxl345_task(); - irq_poll(); - extern void spi_angle_task(void); - spi_angle_task(); - irq_poll(); - extern void mpu9250_task(void); - mpu9250_task(); - irq_poll(); - extern void buttons_task(void); - buttons_task(); - irq_poll(); - extern void tmcuart_task(void); - tmcuart_task(); - irq_poll(); - extern void counter_task(void); - counter_task(); - irq_poll(); - extern void console_task(void); - console_task(); - irq_poll(); - extern void watchdog_task(void); - watchdog_task(); - irq_poll(); - extern void ds18_task(void); - ds18_task(); - irq_poll(); -} - -uint8_t __always_inline -ctr_lookup_static_string(const char *str) -{ - if (__builtin_strcmp(str, "Shutdown cleared when not shutdown") == 0) - return 2; - if (__builtin_strcmp(str, "Timer too close") == 0) - return 3; - if (__builtin_strcmp(str, "sentinel timer called") == 0) - return 4; - if (__builtin_strcmp(str, "Invalid command") == 0) - return 5; - if (__builtin_strcmp(str, "Message encode error") == 0) - return 6; - if (__builtin_strcmp(str, "Command parser error") == 0) - return 7; - if (__builtin_strcmp(str, "Command request") == 0) - return 8; - if (__builtin_strcmp(str, "config_reset only available when shutdown") == 0) - return 9; - if (__builtin_strcmp(str, "oids already allocated") == 0) - return 10; - if (__builtin_strcmp(str, "Can't assign oid") == 0) - return 11; - if (__builtin_strcmp(str, "Invalid oid type") == 0) - return 12; - if (__builtin_strcmp(str, "Already finalized") == 0) - return 13; - if (__builtin_strcmp(str, "Invalid move request size") == 0) - return 14; - if (__builtin_strcmp(str, "Move queue overflow") == 0) - return 15; - if (__builtin_strcmp(str, "alloc_chunks failed") == 0) - return 16; - if (__builtin_strcmp(str, "alloc_chunk failed") == 0) - return 17; - if (__builtin_strcmp(str, "update_digital_out not valid with active queue") == 0) - return 18; - if (__builtin_strcmp(str, "Scheduled digital out event will exceed max_duration") == 0) - return 19; - if (__builtin_strcmp(str, "Can not set soft pwm cycle ticks while updates pending") == 0) - return 20; - if (__builtin_strcmp(str, "Missed scheduling of next digital out event") == 0) - return 21; - if (__builtin_strcmp(str, "Can't reset time when stepper active") == 0) - return 22; - if (__builtin_strcmp(str, "Invalid count parameter") == 0) - return 23; - if (__builtin_strcmp(str, "Stepper too far in past") == 0) - return 24; - if (__builtin_strcmp(str, "Can't add signal that is already active") == 0) - return 25; - if (__builtin_strcmp(str, "ADC out of range") == 0) - return 26; - if (__builtin_strcmp(str, "Invalid spi config") == 0) - return 27; - if (__builtin_strcmp(str, "Thermocouple reader fault") == 0) - return 28; - if (__builtin_strcmp(str, "Thermocouple ADC out of range") == 0) - return 29; - if (__builtin_strcmp(str, "Invalid thermocouple chip type") == 0) - return 30; - if (__builtin_strcmp(str, "i2c_modify_bits: Odd number of bits!") == 0) - return 31; - if (__builtin_strcmp(str, "Scheduled pwm event will exceed max_duration") == 0) - return 32; - if (__builtin_strcmp(str, "Missed scheduling of next hard pwm event") == 0) - return 33; - if (__builtin_strcmp(str, "angle sensor requires cs pin") == 0) - return 34; - if (__builtin_strcmp(str, "Invalid spi_angle chip type") == 0) - return 35; - if (__builtin_strcmp(str, "Invalid buttons retransmit count") == 0) - return 36; - if (__builtin_strcmp(str, "Set button past maximum button count") == 0) - return 37; - if (__builtin_strcmp(str, "Max of 8 buttons") == 0) - return 38; - if (__builtin_strcmp(str, "tmcuart data too large") == 0) - return 39; - if (__builtin_strcmp(str, "Invalid neopixel update command") == 0) - return 40; - if (__builtin_strcmp(str, "Invalid neopixel data_size") == 0) - return 41; - if (__builtin_strcmp(str, "Rescheduled timer in the past") == 0) - return 42; - if (__builtin_strcmp(str, "Force shutdown command") == 0) - return 43; - if (__builtin_strcmp(str, "Invalid pca9685 channel or value") == 0) - return 44; - if (__builtin_strcmp(str, "Scheduled pca9685 event will exceed max_duration") == 0) - return 45; - if (__builtin_strcmp(str, "Invalid pca9685 value") == 0) - return 46; - if (__builtin_strcmp(str, "Missed scheduling of next pca9685 event") == 0) - return 47; - if (__builtin_strcmp(str, "Unable to open and init PCA9685 device") == 0) - return 48; - if (__builtin_strcmp(str, "Too many i2c devices") == 0) - return 49; - if (__builtin_strcmp(str, "All PCA9685 channels must have the same cycle_ticks") == 0) - return 50; - if (__builtin_strcmp(str, "Unable to update PCA9685 value") == 0) - return 51; - if (__builtin_strcmp(str, "Unable to write to spi") == 0) - return 52; - if (__builtin_strcmp(str, "Unable to issue spi ioctl") == 0) - return 53; - if (__builtin_strcmp(str, "Unable to set SPI mode") == 0) - return 54; - if (__builtin_strcmp(str, "Unable to set SPI speed") == 0) - return 55; - if (__builtin_strcmp(str, "Unable to set non-blocking on spi device") == 0) - return 56; - if (__builtin_strcmp(str, "Unable to open spi device") == 0) - return 57; - if (__builtin_strcmp(str, "Too many spi devices") == 0) - return 58; - if (__builtin_strcmp(str, "Error on analog read") == 0) - return 59; - if (__builtin_strcmp(str, "Unable to open adc device") == 0) - return 60; - if (__builtin_strcmp(str, "Unable to config pwm device") == 0) - return 61; - if (__builtin_strcmp(str, "Unable to read i2c device") == 0) - return 62; - if (__builtin_strcmp(str, "Unable write i2c device") == 0) - return 63; - if (__builtin_strcmp(str, "Unable to open i2c device") == 0) - return 64; - if (__builtin_strcmp(str, "Unable to open in GPIO chip line") == 0) - return 65; - if (__builtin_strcmp(str, "Unable to open out GPIO chip line") == 0) - return 66; - if (__builtin_strcmp(str, "Unable to open GPIO chip device") == 0) - return 67; - if (__builtin_strcmp(str, "GPIO chip device not found") == 0) - return 68; - if (__builtin_strcmp(str, "DS18B20 sensor didn't respond in time") == 0) - return 69; - if (__builtin_strcmp(str, "DS18B20 out of range") == 0) - return 70; - if (__builtin_strcmp(str, "Error reading DS18B20 sensor") == 0) - return 71; - if (__builtin_strcmp(str, "Error getting monotonic clock time") == 0) - return 72; - if (__builtin_strcmp(str, "Could not start DS18B20 reader thread") == 0) - return 73; - if (__builtin_strcmp(str, "Could not start DS18B20 reader thread (cond init)") == 0) - return 74; - if (__builtin_strcmp(str, "Could not start DS18B20 reader thread (mutex init)") == 0) - return 75; - if (__builtin_strcmp(str, "Invalid DS18B20 serial id, could not open for reading") == 0) - return 76; - if (__builtin_strcmp(str, "Invalid DS18B20 serial id, must not contain '/'") == 0) - return 77; - return 0xff; -} - -const struct initial_pin_s initial_pins[] PROGMEM = { -}; -const int initial_pins_size PROGMEM = ARRAY_SIZE(initial_pins); - -static const uint8_t command_parameters0[] PROGMEM = { - PT_uint16 }; -static const uint8_t command_parameters1[] PROGMEM = { - PT_uint32, PT_uint16 }; -static const uint8_t command_parameters2[] PROGMEM = { - PT_uint32, PT_progmem_buffer }; -static const uint8_t command_parameters3[] PROGMEM = { - PT_uint32, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters4[] PROGMEM = { - PT_uint32, PT_uint32 }; -static const uint8_t command_parameters5[] PROGMEM = { - PT_uint32 }; -static const uint8_t command_parameters6[] PROGMEM = { - PT_byte, PT_uint32, PT_byte, PT_uint16 }; -static const uint8_t command_parameters7[] PROGMEM = { - PT_buffer }; -static const uint8_t command_parameters8[] PROGMEM = { - PT_byte, PT_int32 }; -static const uint8_t command_parameters9[] PROGMEM = { - PT_byte, PT_byte, PT_uint32, PT_byte }; -static const uint8_t command_parameters10[] PROGMEM = { - PT_byte, PT_byte, PT_byte, PT_uint32 }; -static const uint8_t command_parameters11[] PROGMEM = { - PT_byte, PT_uint32, PT_uint16 }; -static const uint8_t command_parameters12[] PROGMEM = { - PT_byte, PT_buffer }; -static const uint8_t command_parameters13[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_byte }; -static const uint8_t command_parameters14[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint16, PT_byte, PT_byte, PT_uint16 }; -static const uint8_t command_parameters15[] PROGMEM = { - PT_byte, PT_uint16, PT_buffer }; -static const uint8_t command_parameters16[] PROGMEM = { - PT_byte, PT_uint32, PT_buffer }; -static const uint8_t command_parameters17[] PROGMEM = { - PT_byte, PT_uint16 }; -static const uint8_t command_parameters18[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint16, PT_byte, PT_uint32, PT_uint16 }; -static const uint8_t command_parameters19[] PROGMEM = { - PT_byte, PT_byte, PT_buffer }; -static const uint8_t command_parameters20[] PROGMEM = { - PT_byte, PT_byte }; -static const uint8_t command_parameters21[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters22[] PROGMEM = { - PT_byte, PT_uint32, PT_int32, PT_uint32 }; -static const uint8_t command_parameters23[] PROGMEM = { - PT_uint32, PT_byte }; -static const uint8_t command_parameters24[] PROGMEM = { - PT_byte }; -static const uint8_t command_parameters25[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters26[] PROGMEM = { - PT_byte, PT_uint32 }; -static const uint8_t command_parameters27[] PROGMEM = { - PT_byte, PT_uint32, PT_byte, PT_byte, PT_uint32 }; -static const uint8_t command_parameters28[] PROGMEM = { - PT_byte, PT_uint32, PT_uint16, PT_int16 }; -static const uint8_t command_parameters29[] PROGMEM = { - PT_byte, PT_byte, PT_byte, PT_byte, PT_uint32 }; -static const uint8_t command_parameters30[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_byte, PT_uint32, PT_byte, PT_byte, PT_byte }; -static const uint8_t command_parameters31[] PROGMEM = { - PT_byte, PT_byte, PT_byte }; -static const uint8_t command_parameters32[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_byte, PT_uint32, PT_uint16, PT_uint16, PT_byte }; -static const uint8_t command_parameters33[] PROGMEM = { - PT_byte, PT_uint32, PT_byte }; -static const uint8_t command_parameters34[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters35[] PROGMEM = { - PT_byte, PT_buffer, PT_buffer }; -static const uint8_t command_parameters36[] PROGMEM = { - PT_byte, PT_buffer, PT_uint32 }; -static const uint8_t command_parameters37[] PROGMEM = { - PT_uint32, PT_uint32, PT_uint16 }; -static const uint8_t command_parameters38[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint16, PT_uint16, PT_uint32 }; -static const uint8_t command_parameters39[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters40[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters41[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_byte, PT_byte }; -static const uint8_t command_parameters42[] PROGMEM = { - PT_byte, PT_buffer, PT_byte }; -static const uint8_t command_parameters43[] PROGMEM = { - PT_byte, PT_uint32, PT_byte, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters44[] PROGMEM = { - PT_byte, PT_uint32, PT_uint16, PT_uint32, PT_uint32 }; -static const uint8_t command_parameters45[] PROGMEM = { - PT_byte, PT_byte, PT_byte, PT_uint32, PT_uint16 }; -static const uint8_t command_parameters46[] PROGMEM = { - PT_byte, PT_byte, PT_byte, PT_byte, PT_uint32, PT_uint16, PT_uint16, PT_uint32 }; -static const uint8_t command_parameters47[] PROGMEM = { - PT_byte, PT_uint32, PT_uint32, PT_int32, PT_int32 }; - -const struct command_encoder command_encoder_81 PROGMEM = { - // starting - .msg_id=81, - .num_params=0, - .param_types = 0, - .max_size=6, -}; -const struct command_encoder command_encoder_82 PROGMEM = { - // is_shutdown static_string_id=%hu - .msg_id=82, - .num_params=1, - .param_types = command_parameters0, - .max_size=9, -}; -const struct command_encoder command_encoder_83 PROGMEM = { - // shutdown clock=%u static_string_id=%hu - .msg_id=83, - .num_params=2, - .param_types = command_parameters1, - .max_size=14, -}; -const struct command_encoder command_encoder_0 PROGMEM = { - // identify_response offset=%u data=%.*s - .msg_id=0, - .num_params=2, - .param_types = command_parameters2, - .max_size=64, -}; -const struct command_encoder command_encoder_84 PROGMEM = { - // stats count=%u sum=%u sumsq=%u - .msg_id=84, - .num_params=3, - .param_types = command_parameters3, - .max_size=21, -}; -const struct command_encoder command_encoder_85 PROGMEM = { - // uptime high=%u clock=%u - .msg_id=85, - .num_params=2, - .param_types = command_parameters4, - .max_size=16, -}; -const struct command_encoder command_encoder_86 PROGMEM = { - // clock clock=%u - .msg_id=86, - .num_params=1, - .param_types = command_parameters5, - .max_size=11, -}; -const struct command_encoder command_encoder_87 PROGMEM = { - // config is_config=%c crc=%u is_shutdown=%c move_count=%hu - .msg_id=87, - .num_params=4, - .param_types = command_parameters6, - .max_size=18, -}; -const struct command_encoder command_encoder_88 PROGMEM = { - // pong data=%*s - .msg_id=88, - .num_params=1, - .param_types = command_parameters7, - .max_size=64, -}; -const struct command_encoder command_encoder_89 PROGMEM = { - // debug_result val=%u - .msg_id=89, - .num_params=1, - .param_types = command_parameters5, - .max_size=11, -}; -const struct command_encoder command_encoder_90 PROGMEM = { - // stepper_position oid=%c pos=%i - .msg_id=90, - .num_params=2, - .param_types = command_parameters8, - .max_size=13, -}; -const struct command_encoder command_encoder_91 PROGMEM = { - // endstop_state oid=%c homing=%c next_clock=%u pin_value=%c - .msg_id=91, - .num_params=4, - .param_types = command_parameters9, - .max_size=17, -}; -const struct command_encoder command_encoder_92 PROGMEM = { - // trsync_state oid=%c can_trigger=%c trigger_reason=%c clock=%u - .msg_id=92, - .num_params=4, - .param_types = command_parameters10, - .max_size=17, -}; -const struct command_encoder command_encoder_93 PROGMEM = { - // analog_in_state oid=%c next_clock=%u value=%hu - .msg_id=93, - .num_params=3, - .param_types = command_parameters11, - .max_size=16, -}; -const struct command_encoder command_encoder_94 PROGMEM = { - // spi_transfer_response oid=%c response=%*s - .msg_id=94, - .num_params=2, - .param_types = command_parameters12, - .max_size=64, -}; -const struct command_encoder command_encoder_95 PROGMEM = { - // thermocouple_result oid=%c next_clock=%u value=%u fault=%c - .msg_id=95, - .num_params=4, - .param_types = command_parameters13, - .max_size=20, -}; -const struct command_encoder command_encoder_96 PROGMEM = { - // i2c_read_response oid=%c response=%*s - .msg_id=96, - .num_params=2, - .param_types = command_parameters12, - .max_size=64, -}; -const struct command_encoder command_encoder_97 PROGMEM = { - // adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%c limit_count=%hu - .msg_id=97, - .num_params=7, - .param_types = command_parameters14, - .max_size=28, -}; -const struct command_encoder command_encoder_98 PROGMEM = { - // adxl345_data oid=%c sequence=%hu data=%*s - .msg_id=98, - .num_params=3, - .param_types = command_parameters15, - .max_size=64, -}; -const struct command_encoder command_encoder_99 PROGMEM = { - // spi_angle_transfer_response oid=%c clock=%u response=%*s - .msg_id=99, - .num_params=3, - .param_types = command_parameters16, - .max_size=64, -}; -const struct command_encoder command_encoder_100 PROGMEM = { - // spi_angle_end oid=%c sequence=%hu - .msg_id=100, - .num_params=2, - .param_types = command_parameters17, - .max_size=11, -}; -const struct command_encoder command_encoder_101 PROGMEM = { - // spi_angle_data oid=%c sequence=%hu data=%*s - .msg_id=101, - .num_params=3, - .param_types = command_parameters15, - .max_size=64, -}; -const struct command_encoder command_encoder_102 PROGMEM = { - // mpu9250_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%u limit_count=%hu - .msg_id=102, - .num_params=7, - .param_types = command_parameters18, - .max_size=31, -}; -const struct command_encoder command_encoder_103 PROGMEM = { - // mpu9250_data oid=%c sequence=%hu data=%*s - .msg_id=103, - .num_params=3, - .param_types = command_parameters15, - .max_size=64, -}; -const struct command_encoder command_encoder_104 PROGMEM = { - // buttons_state oid=%c ack_count=%c state=%*s - .msg_id=104, - .num_params=3, - .param_types = command_parameters19, - .max_size=64, -}; -const struct command_encoder command_encoder_105 PROGMEM = { - // tmcuart_response oid=%c read=%*s - .msg_id=105, - .num_params=2, - .param_types = command_parameters12, - .max_size=64, -}; -const struct command_encoder command_encoder_106 PROGMEM = { - // neopixel_result oid=%c success=%c - .msg_id=106, - .num_params=2, - .param_types = command_parameters20, - .max_size=10, -}; -const struct command_encoder command_encoder_107 PROGMEM = { - // counter_state oid=%c next_clock=%u count=%u count_clock=%u - .msg_id=107, - .num_params=4, - .param_types = command_parameters21, - .max_size=23, -}; -const struct command_encoder command_encoder_108 PROGMEM = { - // ds18b20_result oid=%c next_clock=%u value=%i fault=%u - .msg_id=108, - .num_params=4, - .param_types = command_parameters22, - .max_size=23, -}; - -const __always_inline struct command_encoder * -ctr_lookup_encoder(const char *str) -{ - if (__builtin_strcmp(str, "starting") == 0) - return &command_encoder_81; - if (__builtin_strcmp(str, "is_shutdown static_string_id=%hu") == 0) - return &command_encoder_82; - if (__builtin_strcmp(str, "shutdown clock=%u static_string_id=%hu") == 0) - return &command_encoder_83; - if (__builtin_strcmp(str, "identify_response offset=%u data=%.*s") == 0) - return &command_encoder_0; - if (__builtin_strcmp(str, "stats count=%u sum=%u sumsq=%u") == 0) - return &command_encoder_84; - if (__builtin_strcmp(str, "uptime high=%u clock=%u") == 0) - return &command_encoder_85; - if (__builtin_strcmp(str, "clock clock=%u") == 0) - return &command_encoder_86; - if (__builtin_strcmp(str, "config is_config=%c crc=%u is_shutdown=%c move_count=%hu") == 0) - return &command_encoder_87; - if (__builtin_strcmp(str, "pong data=%*s") == 0) - return &command_encoder_88; - if (__builtin_strcmp(str, "debug_result val=%u") == 0) - return &command_encoder_89; - if (__builtin_strcmp(str, "stepper_position oid=%c pos=%i") == 0) - return &command_encoder_90; - if (__builtin_strcmp(str, "endstop_state oid=%c homing=%c next_clock=%u pin_value=%c") == 0) - return &command_encoder_91; - if (__builtin_strcmp(str, "trsync_state oid=%c can_trigger=%c trigger_reason=%c clock=%u") == 0) - return &command_encoder_92; - if (__builtin_strcmp(str, "analog_in_state oid=%c next_clock=%u value=%hu") == 0) - return &command_encoder_93; - if (__builtin_strcmp(str, "spi_transfer_response oid=%c response=%*s") == 0) - return &command_encoder_94; - if (__builtin_strcmp(str, "thermocouple_result oid=%c next_clock=%u value=%u fault=%c") == 0) - return &command_encoder_95; - if (__builtin_strcmp(str, "i2c_read_response oid=%c response=%*s") == 0) - return &command_encoder_96; - if (__builtin_strcmp(str, "adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%c limit_count=%hu") == 0) - return &command_encoder_97; - if (__builtin_strcmp(str, "adxl345_data oid=%c sequence=%hu data=%*s") == 0) - return &command_encoder_98; - if (__builtin_strcmp(str, "spi_angle_transfer_response oid=%c clock=%u response=%*s") == 0) - return &command_encoder_99; - if (__builtin_strcmp(str, "spi_angle_end oid=%c sequence=%hu") == 0) - return &command_encoder_100; - if (__builtin_strcmp(str, "spi_angle_data oid=%c sequence=%hu data=%*s") == 0) - return &command_encoder_101; - if (__builtin_strcmp(str, "mpu9250_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%u limit_count=%hu") == 0) - return &command_encoder_102; - if (__builtin_strcmp(str, "mpu9250_data oid=%c sequence=%hu data=%*s") == 0) - return &command_encoder_103; - if (__builtin_strcmp(str, "buttons_state oid=%c ack_count=%c state=%*s") == 0) - return &command_encoder_104; - if (__builtin_strcmp(str, "tmcuart_response oid=%c read=%*s") == 0) - return &command_encoder_105; - if (__builtin_strcmp(str, "neopixel_result oid=%c success=%c") == 0) - return &command_encoder_106; - if (__builtin_strcmp(str, "counter_state oid=%c next_clock=%u count=%u count_clock=%u") == 0) - return &command_encoder_107; - if (__builtin_strcmp(str, "ds18b20_result oid=%c next_clock=%u value=%i fault=%u") == 0) - return &command_encoder_108; - return NULL; -} - -const __always_inline struct command_encoder * -ctr_lookup_output(const char *str) -{ - - return NULL; -} - -extern void command_allocate_oids(uint32_t*); -extern void command_buttons_ack(uint32_t*); -extern void command_buttons_add(uint32_t*); -extern void command_buttons_query(uint32_t*); -extern void command_clear_shutdown(uint32_t*); -extern void command_config_adxl345(uint32_t*); -extern void command_config_analog_in(uint32_t*); -extern void command_config_buttons(uint32_t*); -extern void command_config_counter(uint32_t*); -extern void command_config_digital_out(uint32_t*); -extern void command_config_ds18b20(uint32_t*); -extern void command_config_endstop(uint32_t*); -extern void command_config_hd44780(uint32_t*); -extern void command_config_i2c(uint32_t*); -extern void command_config_mpu9250(uint32_t*); -extern void command_config_neopixel(uint32_t*); -extern void command_config_pca9685(uint32_t*); -extern void command_config_pwm_out(uint32_t*); -extern void command_config_reset(uint32_t*); -extern void command_config_spi(uint32_t*); -extern void command_config_spi_angle(uint32_t*); -extern void command_config_spi_shutdown(uint32_t*); -extern void command_config_spi_without_cs(uint32_t*); -extern void command_config_st7920(uint32_t*); -extern void command_config_stepper(uint32_t*); -extern void command_config_thermocouple(uint32_t*); -extern void command_config_tmcuart(uint32_t*); -extern void command_config_trsync(uint32_t*); -extern void command_debug_nop(uint32_t*); -extern void command_debug_ping(uint32_t*); -extern void command_debug_read(uint32_t*); -extern void command_debug_write(uint32_t*); -extern void command_emergency_stop(uint32_t*); -extern void command_endstop_home(uint32_t*); -extern void command_endstop_query_state(uint32_t*); -extern void command_finalize_config(uint32_t*); -extern void command_get_clock(uint32_t*); -extern void command_get_config(uint32_t*); -extern void command_get_uptime(uint32_t*); -extern void command_hd44780_send_cmds(uint32_t*); -extern void command_hd44780_send_data(uint32_t*); -extern void command_i2c_modify_bits(uint32_t*); -extern void command_i2c_read(uint32_t*); -extern void command_i2c_write(uint32_t*); -extern void command_identify(uint32_t*); -extern void command_neopixel_send(uint32_t*); -extern void command_neopixel_update(uint32_t*); -extern void command_query_adxl345(uint32_t*); -extern void command_query_adxl345_status(uint32_t*); -extern void command_query_analog_in(uint32_t*); -extern void command_query_counter(uint32_t*); -extern void command_query_ds18b20(uint32_t*); -extern void command_query_mpu9250(uint32_t*); -extern void command_query_mpu9250_status(uint32_t*); -extern void command_query_spi_angle(uint32_t*); -extern void command_query_thermocouple(uint32_t*); -extern void command_queue_digital_out(uint32_t*); -extern void command_queue_pca9685_out(uint32_t*); -extern void command_queue_pwm_out(uint32_t*); -extern void command_queue_step(uint32_t*); -extern void command_reset_step_clock(uint32_t*); -extern void command_set_digital_out(uint32_t*); -extern void command_set_digital_out_pwm_cycle(uint32_t*); -extern void command_set_next_step_dir(uint32_t*); -extern void command_set_pca9685_out(uint32_t*); -extern void command_set_pwm_out(uint32_t*); -extern void command_spi_angle_transfer(uint32_t*); -extern void command_spi_send(uint32_t*); -extern void command_spi_set_bus(uint32_t*); -extern void command_spi_set_software_bus(uint32_t*); -extern void command_spi_transfer(uint32_t*); -extern void command_st7920_send_cmds(uint32_t*); -extern void command_st7920_send_data(uint32_t*); -extern void command_stepper_get_position(uint32_t*); -extern void command_stepper_stop_on_trigger(uint32_t*); -extern void command_tmcuart_send(uint32_t*); -extern void command_trsync_set_timeout(uint32_t*); -extern void command_trsync_start(uint32_t*); -extern void command_trsync_trigger(uint32_t*); -extern void command_update_digital_out(uint32_t*); - -const struct command_parser command_index[] PROGMEM = { -{ -}, { - // identify offset=%u count=%c - .msg_id=1, - .num_params=2, - .param_types = command_parameters23, - .num_args=2, - .flags=0x01, - .func=command_identify -}, { - // clear_shutdown - .msg_id=2, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_clear_shutdown -}, { - // emergency_stop - .msg_id=3, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_emergency_stop -}, { - // get_uptime - .msg_id=4, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_get_uptime -}, { - // get_clock - .msg_id=5, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_get_clock -}, { - // finalize_config crc=%u - .msg_id=6, - .num_params=1, - .param_types = command_parameters5, - .num_args=1, - .flags=0, - .func=command_finalize_config -}, { - // get_config - .msg_id=7, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_get_config -}, { - // allocate_oids count=%c - .msg_id=8, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_allocate_oids -}, { - // debug_nop - .msg_id=9, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_debug_nop -}, { - // debug_ping data=%*s - .msg_id=10, - .num_params=1, - .param_types = command_parameters7, - .num_args=2, - .flags=0x01, - .func=command_debug_ping -}, { - // debug_write order=%c addr=%u val=%u - .msg_id=11, - .num_params=3, - .param_types = command_parameters25, - .num_args=3, - .flags=0x01, - .func=command_debug_write -}, { - // debug_read order=%c addr=%u - .msg_id=12, - .num_params=2, - .param_types = command_parameters26, - .num_args=2, - .flags=0x01, - .func=command_debug_read -}, { - // set_digital_out pin=%u value=%c - .msg_id=13, - .num_params=2, - .param_types = command_parameters23, - .num_args=2, - .flags=0, - .func=command_set_digital_out -}, { - // update_digital_out oid=%c value=%c - .msg_id=14, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_update_digital_out -}, { - // queue_digital_out oid=%c clock=%u on_ticks=%u - .msg_id=15, - .num_params=3, - .param_types = command_parameters25, - .num_args=3, - .flags=0, - .func=command_queue_digital_out -}, { - // set_digital_out_pwm_cycle oid=%c cycle_ticks=%u - .msg_id=16, - .num_params=2, - .param_types = command_parameters26, - .num_args=2, - .flags=0, - .func=command_set_digital_out_pwm_cycle -}, { - // config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u - .msg_id=17, - .num_params=5, - .param_types = command_parameters27, - .num_args=5, - .flags=0, - .func=command_config_digital_out -}, { - // stepper_stop_on_trigger oid=%c trsync_oid=%c - .msg_id=18, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_stepper_stop_on_trigger -}, { - // stepper_get_position oid=%c - .msg_id=19, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_stepper_get_position -}, { - // reset_step_clock oid=%c clock=%u - .msg_id=20, - .num_params=2, - .param_types = command_parameters26, - .num_args=2, - .flags=0, - .func=command_reset_step_clock -}, { - // set_next_step_dir oid=%c dir=%c - .msg_id=21, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_set_next_step_dir -}, { - // queue_step oid=%c interval=%u count=%hu add=%hi - .msg_id=22, - .num_params=4, - .param_types = command_parameters28, - .num_args=4, - .flags=0, - .func=command_queue_step -}, { - // config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u - .msg_id=23, - .num_params=5, - .param_types = command_parameters29, - .num_args=5, - .flags=0, - .func=command_config_stepper -}, { - // endstop_query_state oid=%c - .msg_id=24, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_endstop_query_state -}, { - // endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c trsync_oid=%c trigger_reason=%c - .msg_id=25, - .num_params=8, - .param_types = command_parameters30, - .num_args=8, - .flags=0, - .func=command_endstop_home -}, { - // config_endstop oid=%c pin=%c pull_up=%c - .msg_id=26, - .num_params=3, - .param_types = command_parameters31, - .num_args=3, - .flags=0, - .func=command_config_endstop -}, { - // trsync_trigger oid=%c reason=%c - .msg_id=27, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_trsync_trigger -}, { - // trsync_set_timeout oid=%c clock=%u - .msg_id=28, - .num_params=2, - .param_types = command_parameters26, - .num_args=2, - .flags=0, - .func=command_trsync_set_timeout -}, { - // trsync_start oid=%c report_clock=%u report_ticks=%u expire_reason=%c - .msg_id=29, - .num_params=4, - .param_types = command_parameters13, - .num_args=4, - .flags=0, - .func=command_trsync_start -}, { - // config_trsync oid=%c - .msg_id=30, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_config_trsync -}, { - // query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu range_check_count=%c - .msg_id=31, - .num_params=8, - .param_types = command_parameters32, - .num_args=8, - .flags=0, - .func=command_query_analog_in -}, { - // config_analog_in oid=%c pin=%u - .msg_id=32, - .num_params=2, - .param_types = command_parameters26, - .num_args=2, - .flags=0, - .func=command_config_analog_in -}, { - // config_spi_shutdown oid=%c spi_oid=%c shutdown_msg=%*s - .msg_id=33, - .num_params=3, - .param_types = command_parameters19, - .num_args=4, - .flags=0, - .func=command_config_spi_shutdown -}, { - // spi_send oid=%c data=%*s - .msg_id=34, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_spi_send -}, { - // spi_transfer oid=%c data=%*s - .msg_id=35, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_spi_transfer -}, { - // spi_set_bus oid=%c spi_bus=%u mode=%u rate=%u - .msg_id=36, - .num_params=4, - .param_types = command_parameters21, - .num_args=4, - .flags=0, - .func=command_spi_set_bus -}, { - // config_spi_without_cs oid=%c - .msg_id=37, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_config_spi_without_cs -}, { - // config_spi oid=%c pin=%u cs_active_high=%c - .msg_id=38, - .num_params=3, - .param_types = command_parameters33, - .num_args=3, - .flags=0, - .func=command_config_spi -}, { - // query_thermocouple oid=%c clock=%u rest_ticks=%u min_value=%u max_value=%u - .msg_id=39, - .num_params=5, - .param_types = command_parameters34, - .num_args=5, - .flags=0, - .func=command_query_thermocouple -}, { - // config_thermocouple oid=%c spi_oid=%c thermocouple_type=%c - .msg_id=40, - .num_params=3, - .param_types = command_parameters31, - .num_args=3, - .flags=0, - .func=command_config_thermocouple -}, { - // i2c_modify_bits oid=%c reg=%*s clear_set_bits=%*s - .msg_id=41, - .num_params=3, - .param_types = command_parameters35, - .num_args=5, - .flags=0, - .func=command_i2c_modify_bits -}, { - // i2c_read oid=%c reg=%*s read_len=%u - .msg_id=42, - .num_params=3, - .param_types = command_parameters36, - .num_args=4, - .flags=0, - .func=command_i2c_read -}, { - // i2c_write oid=%c data=%*s - .msg_id=43, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_i2c_write -}, { - // config_i2c oid=%c i2c_bus=%u rate=%u address=%u - .msg_id=44, - .num_params=4, - .param_types = command_parameters21, - .num_args=4, - .flags=0, - .func=command_config_i2c -}, { - // set_pwm_out pin=%u cycle_ticks=%u value=%hu - .msg_id=45, - .num_params=3, - .param_types = command_parameters37, - .num_args=3, - .flags=0, - .func=command_set_pwm_out -}, { - // queue_pwm_out oid=%c clock=%u value=%hu - .msg_id=46, - .num_params=3, - .param_types = command_parameters11, - .num_args=3, - .flags=0, - .func=command_queue_pwm_out -}, { - // config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u - .msg_id=47, - .num_params=6, - .param_types = command_parameters38, - .num_args=6, - .flags=0, - .func=command_config_pwm_out -}, { - // spi_set_software_bus oid=%c miso_pin=%u mosi_pin=%u sclk_pin=%u mode=%u rate=%u - .msg_id=48, - .num_params=6, - .param_types = command_parameters39, - .num_args=6, - .flags=0, - .func=command_spi_set_software_bus -}, { - // query_adxl345_status oid=%c - .msg_id=49, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_query_adxl345_status -}, { - // query_adxl345 oid=%c clock=%u rest_ticks=%u - .msg_id=50, - .num_params=3, - .param_types = command_parameters25, - .num_args=3, - .flags=0, - .func=command_query_adxl345 -}, { - // config_adxl345 oid=%c spi_oid=%c - .msg_id=51, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_config_adxl345 -}, { - // spi_angle_transfer oid=%c data=%*s - .msg_id=52, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_spi_angle_transfer -}, { - // query_spi_angle oid=%c clock=%u rest_ticks=%u time_shift=%c - .msg_id=53, - .num_params=4, - .param_types = command_parameters13, - .num_args=4, - .flags=0, - .func=command_query_spi_angle -}, { - // config_spi_angle oid=%c spi_oid=%c spi_angle_type=%c - .msg_id=54, - .num_params=3, - .param_types = command_parameters31, - .num_args=3, - .flags=0, - .func=command_config_spi_angle -}, { - // query_mpu9250_status oid=%c - .msg_id=55, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_query_mpu9250_status -}, { - // query_mpu9250 oid=%c clock=%u rest_ticks=%u - .msg_id=56, - .num_params=3, - .param_types = command_parameters25, - .num_args=3, - .flags=0, - .func=command_query_mpu9250 -}, { - // config_mpu9250 oid=%c i2c_oid=%c - .msg_id=57, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_config_mpu9250 -}, { - // st7920_send_data oid=%c data=%*s - .msg_id=58, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_st7920_send_data -}, { - // st7920_send_cmds oid=%c cmds=%*s - .msg_id=59, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_st7920_send_cmds -}, { - // config_st7920 oid=%c cs_pin=%u sclk_pin=%u sid_pin=%u sync_delay_ticks=%u cmd_delay_ticks=%u - .msg_id=60, - .num_params=6, - .param_types = command_parameters39, - .num_args=6, - .flags=0, - .func=command_config_st7920 -}, { - // hd44780_send_data oid=%c data=%*s - .msg_id=61, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_hd44780_send_data -}, { - // hd44780_send_cmds oid=%c cmds=%*s - .msg_id=62, - .num_params=2, - .param_types = command_parameters12, - .num_args=3, - .flags=0, - .func=command_hd44780_send_cmds -}, { - // config_hd44780 oid=%c rs_pin=%u e_pin=%u d4_pin=%u d5_pin=%u d6_pin=%u d7_pin=%u delay_ticks=%u - .msg_id=63, - .num_params=8, - .param_types = command_parameters40, - .num_args=8, - .flags=0, - .func=command_config_hd44780 -}, { - // buttons_ack oid=%c count=%c - .msg_id=64, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_buttons_ack -}, { - // buttons_query oid=%c clock=%u rest_ticks=%u retransmit_count=%c invert=%c - .msg_id=65, - .num_params=5, - .param_types = command_parameters41, - .num_args=5, - .flags=0, - .func=command_buttons_query -}, { - // buttons_add oid=%c pos=%c pin=%u pull_up=%c - .msg_id=66, - .num_params=4, - .param_types = command_parameters9, - .num_args=4, - .flags=0, - .func=command_buttons_add -}, { - // config_buttons oid=%c button_count=%c - .msg_id=67, - .num_params=2, - .param_types = command_parameters20, - .num_args=2, - .flags=0, - .func=command_config_buttons -}, { - // tmcuart_send oid=%c write=%*s read=%c - .msg_id=68, - .num_params=3, - .param_types = command_parameters42, - .num_args=4, - .flags=0, - .func=command_tmcuart_send -}, { - // config_tmcuart oid=%c rx_pin=%u pull_up=%c tx_pin=%u bit_time=%u - .msg_id=69, - .num_params=5, - .param_types = command_parameters43, - .num_args=5, - .flags=0, - .func=command_config_tmcuart -}, { - // neopixel_send oid=%c - .msg_id=70, - .num_params=1, - .param_types = command_parameters24, - .num_args=1, - .flags=0, - .func=command_neopixel_send -}, { - // neopixel_update oid=%c pos=%hu data=%*s - .msg_id=71, - .num_params=3, - .param_types = command_parameters15, - .num_args=4, - .flags=0, - .func=command_neopixel_update -}, { - // config_neopixel oid=%c pin=%u data_size=%hu bit_max_ticks=%u reset_min_ticks=%u - .msg_id=72, - .num_params=5, - .param_types = command_parameters44, - .num_args=5, - .flags=0, - .func=command_config_neopixel -}, { - // query_counter oid=%c clock=%u poll_ticks=%u sample_ticks=%u - .msg_id=73, - .num_params=4, - .param_types = command_parameters21, - .num_args=4, - .flags=0, - .func=command_query_counter -}, { - // config_counter oid=%c pin=%u pull_up=%c - .msg_id=74, - .num_params=3, - .param_types = command_parameters33, - .num_args=3, - .flags=0, - .func=command_config_counter -}, { - // config_reset - .msg_id=75, - .num_params=0, - .param_types = 0, - .num_args=0, - .flags=0x01, - .func=command_config_reset -}, { - // set_pca9685_out bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu - .msg_id=76, - .num_params=5, - .param_types = command_parameters45, - .num_args=5, - .flags=0, - .func=command_set_pca9685_out -}, { - // queue_pca9685_out oid=%c clock=%u value=%hu - .msg_id=77, - .num_params=3, - .param_types = command_parameters11, - .num_args=3, - .flags=0, - .func=command_queue_pca9685_out -}, { - // config_pca9685 oid=%c bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu default_value=%hu max_duration=%u - .msg_id=78, - .num_params=8, - .param_types = command_parameters46, - .num_args=8, - .flags=0, - .func=command_config_pca9685 -}, { - // query_ds18b20 oid=%c clock=%u rest_ticks=%u min_value=%i max_value=%i - .msg_id=79, - .num_params=5, - .param_types = command_parameters47, - .num_args=5, - .flags=0, - .func=command_query_ds18b20 -}, { - // config_ds18b20 oid=%c serial=%*s max_error_count=%c - .msg_id=80, - .num_params=3, - .param_types = command_parameters42, - .num_args=4, - .flags=0, - .func=command_config_ds18b20 -}, -}; - -const uint8_t command_index_size PROGMEM = ARRAY_SIZE(command_index); - -// version: v0.10.0-530-g3387a9c2 -// build_versions: gcc: (Debian 8.3.0-6) 8.3.0 binutils: (GNU Binutils for Debian) 2.31.1 - -const uint8_t command_identify_data[] PROGMEM = { - 0x78, 0xda, 0xa5, 0x1a, 0x6b, 0x6f, 0xdb, 0x38, - 0xf2, 0xaf, 0xf0, 0x0c, 0x14, 0xdd, 0x1e, 0x12, - 0xaf, 0xad, 0x87, 0x2d, 0x1b, 0xe8, 0x87, 0x34, - 0xed, 0x2e, 0x8a, 0xbb, 0x5c, 0xbb, 0x9b, 0x16, - 0x77, 0xc0, 0x61, 0x21, 0x28, 0x12, 0x6d, 0x13, - 0xd1, 0x6b, 0x45, 0x29, 0x8f, 0x5b, 0xe4, 0xbf, - 0xdf, 0x0c, 0x87, 0x2f, 0xc9, 0x4e, 0xda, 0xbb, - 0xcd, 0x17, 0x53, 0x9c, 0x19, 0x72, 0x38, 0x9c, - 0x37, 0xf3, 0xc7, 0xec, 0x66, 0x10, 0x65, 0x91, - 0xde, 0xf1, 0x4e, 0x8a, 0xa6, 0x96, 0xb3, 0xed, - 0x6c, 0x9f, 0xe7, 0x5b, 0xf6, 0xc3, 0x7b, 0x7e, - 0x23, 0xb2, 0x9a, 0x25, 0xf3, 0x70, 0xbe, 0x38, - 0x5f, 0xbd, 0xa1, 0x01, 0xbb, 0x11, 0xf5, 0xd0, - 0x8b, 0x52, 0x02, 0xc2, 0xcf, 0xff, 0xf8, 0xca, - 0xde, 0xe9, 0x4f, 0xb6, 0x6b, 0x3a, 0x46, 0x14, - 0x6f, 0x58, 0x30, 0x0f, 0x97, 0xf3, 0xe5, 0xec, - 0x6c, 0x96, 0x37, 0x55, 0x95, 0xd5, 0x05, 0xac, - 0xf9, 0xc7, 0x2c, 0x2b, 0xcb, 0x26, 0xcf, 0x7a, - 0x9e, 0x36, 0xa2, 0x90, 0x2c, 0x6f, 0x86, 0xba, - 0x7f, 0xfb, 0x2a, 0x9f, 0x6d, 0x93, 0x33, 0x60, - 0xa0, 0xef, 0x61, 0xe7, 0x34, 0xcb, 0x6f, 0x19, - 0x40, 0x61, 0xda, 0x83, 0xaf, 0x22, 0x0f, 0xa1, - 0x28, 0x0c, 0x42, 0xdb, 0x48, 0xf5, 0x23, 0xea, - 0xb7, 0xaf, 0x06, 0xd6, 0x0e, 0x65, 0x99, 0x0e, - 0x2d, 0x11, 0xac, 0x1c, 0xc1, 0xef, 0x03, 0xef, - 0x1e, 0xed, 0x9a, 0xc0, 0xc0, 0x2d, 0x62, 0x77, - 0x5c, 0xf6, 0x69, 0x2f, 0xf2, 0x5b, 0x49, 0x5f, - 0x7d, 0x97, 0xd5, 0xb2, 0x12, 0x7d, 0x6a, 0x76, - 0x65, 0xa2, 0x06, 0x71, 0xe8, 0xfd, 0x63, 0x38, - 0x47, 0xc9, 0xb3, 0x2e, 0x95, 0x87, 0xa1, 0x2f, - 0x9a, 0xfb, 0x7a, 0xb6, 0x0d, 0xf0, 0x68, 0xf5, - 0x4e, 0xec, 0x81, 0xa3, 0x87, 0x32, 0x8c, 0x62, - 0xb3, 0x85, 0x6c, 0x45, 0x4a, 0xc3, 0xd9, 0x36, - 0x5e, 0x3a, 0xac, 0x3a, 0x2b, 0x9b, 0x7d, 0x2a, - 0x6a, 0xcb, 0xbd, 0x62, 0x7b, 0xb6, 0x0d, 0xdd, - 0x4a, 0x9a, 0x65, 0x83, 0x41, 0x9f, 0xa9, 0x27, - 0x87, 0xb5, 0x45, 0x55, 0x93, 0xbc, 0x1b, 0x2f, - 0x36, 0x92, 0xc1, 0x3a, 0xb2, 0xc8, 0x85, 0xd8, - 0x8b, 0x3e, 0x2b, 0xd3, 0x66, 0xe8, 0x27, 0x04, - 0x77, 0x59, 0x39, 0x70, 0xfc, 0x2e, 0xf8, 0x2e, - 0x1b, 0xca, 0x3e, 0xb5, 0x13, 0x55, 0xf6, 0x90, - 0x16, 0x43, 0x97, 0xf5, 0xa0, 0x10, 0x8a, 0xcf, - 0xa5, 0xdb, 0xbc, 0x90, 0xcb, 0xe4, 0x26, 0x58, - 0xd8, 0x13, 0xf3, 0x4e, 0x64, 0xe5, 0xdb, 0x57, - 0x7f, 0x95, 0x8a, 0x8a, 0x77, 0x5d, 0xd3, 0x79, - 0x5c, 0x27, 0x0b, 0x4b, 0xc8, 0x41, 0x11, 0xfa, - 0xa6, 0x1d, 0x31, 0x91, 0x8f, 0xb8, 0x0e, 0x56, - 0x16, 0xf9, 0x50, 0x44, 0xd1, 0x3a, 0xb1, 0xbb, - 0x74, 0x32, 0xd5, 0x4c, 0x73, 0x33, 0x28, 0x22, - 0x3b, 0x8a, 0xed, 0x68, 0x65, 0x47, 0x6b, 0x3b, - 0xe2, 0x65, 0xf6, 0x68, 0x6f, 0x1b, 0xe4, 0x18, - 0xda, 0x4d, 0x44, 0x90, 0x9b, 0x0d, 0x60, 0x08, - 0x37, 0x40, 0xfa, 0x00, 0x4a, 0x8a, 0xbf, 0xa0, - 0x6c, 0xa0, 0x28, 0x44, 0x14, 0x39, 0x79, 0x56, - 0xed, 0xb0, 0x09, 0xe2, 0x85, 0x4f, 0x68, 0x6f, - 0xdc, 0x49, 0xa9, 0xe6, 0x4d, 0x2b, 0x1e, 0x78, - 0x39, 0x11, 0x79, 0x91, 0xf5, 0x59, 0x2a, 0xc5, - 0x7f, 0x60, 0x83, 0xc3, 0x00, 0xb6, 0xd4, 0xa7, - 0x28, 0x34, 0x4f, 0x15, 0x25, 0x87, 0x29, 0x51, - 0x7b, 0xfc, 0xae, 0x9d, 0x8a, 0xb4, 0x79, 0xb6, - 0x59, 0x25, 0xb1, 0x53, 0x11, 0x65, 0x02, 0xc8, - 0xa7, 0x52, 0xef, 0x43, 0x56, 0xd7, 0xbc, 0x54, - 0xc3, 0x47, 0xd0, 0x58, 0xb7, 0xac, 0xbe, 0xd7, - 0xc3, 0x30, 0xbd, 0x69, 0x98, 0x39, 0xba, 0xea, - 0x75, 0xe2, 0xf6, 0xbb, 0xaf, 0x4e, 0xa8, 0xcd, - 0x9f, 0x59, 0x3c, 0x72, 0x12, 0x52, 0x67, 0x85, - 0xed, 0x62, 0x3b, 0x03, 0xc6, 0x33, 0xdd, 0x0a, - 0x7d, 0x42, 0x2f, 0xee, 0x78, 0x7a, 0x10, 0xfb, - 0x83, 0x92, 0x71, 0x98, 0xf8, 0xf8, 0x60, 0x59, - 0xfb, 0x92, 0x1f, 0x5b, 0x1f, 0xb3, 0xb0, 0xb4, - 0x7f, 0x6c, 0x39, 0xdd, 0x4e, 0x34, 0xa2, 0x34, - 0xd6, 0x7c, 0x8a, 0x58, 0x83, 0xd2, 0x4a, 0xee, - 0x51, 0xb3, 0x61, 0xd7, 0x70, 0x44, 0x7b, 0x2f, - 0xfa, 0x03, 0x08, 0x26, 0xcd, 0x8d, 0xb9, 0x02, - 0x86, 0x3b, 0x99, 0xec, 0xd7, 0x1b, 0x67, 0x20, - 0xb9, 0x55, 0x5d, 0x99, 0x97, 0xb7, 0x76, 0x2c, - 0x0a, 0x3b, 0x7c, 0xac, 0xf3, 0x74, 0xac, 0xa5, - 0x2c, 0xaf, 0x8a, 0xf4, 0x48, 0x71, 0x17, 0xde, - 0x0e, 0xbc, 0x6d, 0x9d, 0x03, 0xc0, 0xcf, 0x54, - 0xdb, 0x53, 0x21, 0x3a, 0x33, 0x24, 0x27, 0xa6, - 0x90, 0x1d, 0xd6, 0x50, 0x4a, 0xee, 0x2d, 0x1a, - 0xb8, 0x83, 0xf5, 0x07, 0xde, 0x55, 0x0d, 0x98, - 0x6e, 0x7b, 0x52, 0xa2, 0x3e, 0xd8, 0x09, 0x35, - 0x72, 0x4c, 0xf5, 0x55, 0x3e, 0x64, 0x9d, 0xd5, - 0x96, 0xee, 0x21, 0x3d, 0x72, 0x4c, 0xac, 0xb7, - 0x93, 0xa8, 0xfb, 0xbd, 0xa8, 0x38, 0x1d, 0x6d, - 0xe3, 0x56, 0xe9, 0x50, 0x1e, 0x4e, 0xac, 0xb0, - 0x7e, 0xc1, 0x6f, 0x06, 0xb0, 0xa8, 0xa6, 0x9d, - 0x6d, 0x37, 0xe6, 0x0b, 0x56, 0xd9, 0x2b, 0x6b, - 0xa2, 0xfb, 0x59, 0x5a, 0xb4, 0x8e, 0x67, 0x10, - 0x23, 0xba, 0x82, 0x77, 0xce, 0x36, 0xd0, 0x81, - 0x05, 0x06, 0xe1, 0xbe, 0x13, 0x3d, 0x3f, 0xc2, - 0x40, 0x35, 0x26, 0x44, 0xf0, 0xda, 0xbc, 0xe2, - 0xdd, 0x9e, 0xd7, 0xf9, 0x63, 0x8a, 0x0e, 0x0b, - 0x98, 0x80, 0x29, 0x72, 0x5e, 0xe9, 0xa1, 0xa9, - 0xf8, 0x51, 0x3c, 0x91, 0x59, 0xd5, 0xfa, 0x26, - 0xa1, 0xbf, 0x6d, 0x34, 0x19, 0xc7, 0x1b, 0x60, - 0xdd, 0x79, 0x5a, 0x3a, 0xae, 0x95, 0x71, 0x27, - 0xf6, 0x7b, 0xde, 0xe1, 0x21, 0x24, 0x5a, 0x0c, - 0xfa, 0xc4, 0xd8, 0x6d, 0xae, 0xa2, 0x19, 0xf0, - 0x94, 0xf5, 0xdc, 0x0a, 0x28, 0x00, 0xad, 0xde, - 0x09, 0x88, 0x2f, 0xe0, 0x54, 0x52, 0x92, 0x21, - 0xcb, 0xbb, 0x9c, 0xc4, 0x7a, 0x36, 0xdb, 0x83, - 0x3f, 0x51, 0x7c, 0x82, 0xfe, 0xeb, 0x2f, 0x85, - 0x03, 0x86, 0x47, 0x9f, 0x43, 0x8b, 0xb7, 0x00, - 0x17, 0x79, 0x36, 0xd3, 0x3e, 0x37, 0x95, 0xb0, - 0x5f, 0x0a, 0x1a, 0x68, 0x63, 0x11, 0x8e, 0x49, - 0xce, 0xab, 0x60, 0x82, 0x86, 0x57, 0x60, 0xd0, - 0xdc, 0x75, 0xac, 0x40, 0x88, 0xe8, 0x18, 0xab, - 0xa6, 0x10, 0xbb, 0xc7, 0x14, 0xee, 0xda, 0xae, - 0xd5, 0x71, 0x65, 0x52, 0x4c, 0x87, 0x54, 0xe0, - 0x00, 0xa1, 0x44, 0x16, 0x69, 0x32, 0xba, 0xc3, - 0x31, 0x3e, 0xce, 0xa5, 0x25, 0xd7, 0x6e, 0x24, - 0x20, 0x44, 0x7d, 0x97, 0xd3, 0xed, 0x23, 0xb8, - 0x30, 0x51, 0xf0, 0xba, 0x87, 0xcd, 0x59, 0xb3, - 0xdb, 0xc1, 0x2e, 0xca, 0xa8, 0x6c, 0x54, 0x82, - 0x7d, 0x8c, 0x83, 0x56, 0xc7, 0xb0, 0xd2, 0x5c, - 0x2f, 0x3c, 0xc8, 0xd0, 0x16, 0x4e, 0xd2, 0x94, - 0x70, 0x1c, 0x06, 0x6f, 0x9b, 0x35, 0x2c, 0x43, - 0x57, 0x32, 0xc9, 0x02, 0x4e, 0x27, 0x1a, 0x70, - 0x03, 0x8b, 0x09, 0x81, 0xba, 0xcb, 0xc1, 0x39, - 0x91, 0x68, 0x63, 0x11, 0xa6, 0x19, 0xc3, 0xff, - 0xa9, 0x6c, 0x95, 0x53, 0x36, 0xed, 0x8f, 0xdd, - 0x17, 0x64, 0x3d, 0x7b, 0x20, 0x3c, 0xf0, 0xfc, - 0xd6, 0x8b, 0xd8, 0xa1, 0x3d, 0xd5, 0x24, 0xcd, - 0xb0, 0x1c, 0xb4, 0x0d, 0xd8, 0xf3, 0x74, 0x7f, - 0x2f, 0x60, 0x85, 0x66, 0x81, 0x49, 0xaa, 0xf0, - 0x4c, 0xfe, 0xe5, 0xb1, 0x28, 0x7c, 0x0e, 0x05, - 0x2c, 0x65, 0xe5, 0x31, 0x89, 0xba, 0xcf, 0x4a, - 0x78, 0x35, 0x21, 0x98, 0x4a, 0x38, 0x8e, 0x0d, - 0xc2, 0x51, 0xf4, 0x78, 0x86, 0x3d, 0x34, 0x0f, - 0x08, 0x16, 0x62, 0x47, 0xe2, 0x89, 0xed, 0xe9, - 0x4e, 0xf9, 0xcb, 0x6f, 0x1f, 0x71, 0x74, 0x09, - 0x98, 0x01, 0xd2, 0x11, 0x07, 0x7e, 0x2a, 0x51, - 0xb3, 0xcb, 0x35, 0x7e, 0x46, 0xb0, 0x8c, 0x0d, - 0x89, 0x4e, 0x08, 0x4e, 0x92, 0xd8, 0x7b, 0x06, - 0x31, 0xae, 0x2d, 0xc1, 0x38, 0xa2, 0x9f, 0x42, - 0x8e, 0x56, 0x06, 0x19, 0x03, 0x86, 0x4d, 0x73, - 0x50, 0x13, 0xc8, 0x47, 0x1a, 0x3b, 0x3a, 0xa8, - 0x14, 0x09, 0x7e, 0xe1, 0xa2, 0x02, 0x30, 0x48, - 0x4a, 0x5e, 0x54, 0x94, 0x51, 0xeb, 0x4e, 0x37, - 0x01, 0x2c, 0xd0, 0x7f, 0xc4, 0xf1, 0x4f, 0x3a, - 0xc9, 0x45, 0xe1, 0x74, 0xe1, 0x11, 0x92, 0x62, - 0x5b, 0xa5, 0x1d, 0x76, 0xcd, 0x51, 0x0e, 0x02, - 0x44, 0x2b, 0x22, 0xaa, 0xf9, 0x83, 0x66, 0x01, - 0xe2, 0xa0, 0x75, 0x0c, 0xa2, 0x23, 0x57, 0xb9, - 0x24, 0x24, 0x5f, 0x6a, 0xff, 0x7b, 0x0e, 0x05, - 0xe2, 0xd4, 0x9b, 0x19, 0x61, 0x7e, 0x23, 0x2f, - 0x02, 0x91, 0xc2, 0x85, 0x79, 0x09, 0x09, 0x56, - 0x1b, 0x3b, 0x67, 0x57, 0xce, 0xa1, 0xc4, 0x01, - 0xe1, 0x79, 0x2e, 0xc9, 0x83, 0x86, 0x91, 0x81, - 0xf6, 0x98, 0xaa, 0xfa, 0x21, 0x5a, 0x67, 0xae, - 0xe0, 0x6e, 0xb9, 0x97, 0xc1, 0x02, 0xc9, 0xca, - 0x91, 0xc8, 0x66, 0xd7, 0xdf, 0x67, 0x1d, 0xf7, - 0x69, 0x2b, 0x21, 0x1b, 0x13, 0x90, 0xab, 0x46, - 0x8a, 0x53, 0x99, 0xca, 0xd1, 0xa2, 0x51, 0x42, - 0x8b, 0x3e, 0x7f, 0x8e, 0x10, 0xcf, 0xab, 0x92, - 0xa0, 0x97, 0x62, 0x49, 0xbc, 0x19, 0x63, 0x9d, - 0x0e, 0x25, 0x31, 0xee, 0x46, 0xe9, 0x4e, 0x8a, - 0xf1, 0x0a, 0xdc, 0xb0, 0xc0, 0x74, 0xd2, 0x5a, - 0xf4, 0x72, 0xe3, 0x10, 0x54, 0x94, 0x44, 0x5b, - 0xa1, 0x38, 0xca, 0x6c, 0x58, 0xf5, 0x82, 0x2c, - 0x50, 0xc0, 0x92, 0x3a, 0x59, 0x19, 0x89, 0x5a, - 0x45, 0x13, 0x1b, 0x6c, 0xa8, 0xe8, 0x42, 0x54, - 0xa2, 0x46, 0x19, 0xa2, 0x2f, 0x38, 0x61, 0x3e, - 0xa0, 0x5a, 0x1e, 0x5e, 0xef, 0x27, 0x41, 0xbc, - 0x6d, 0x3a, 0x1d, 0x81, 0xc9, 0x2d, 0xa8, 0x6f, - 0xab, 0x24, 0xfc, 0xa1, 0x15, 0x70, 0x25, 0x7e, - 0xbc, 0xdf, 0xd8, 0x95, 0x26, 0xa7, 0xf0, 0x91, - 0xc0, 0xa0, 0x29, 0x3a, 0x9d, 0xf2, 0x1a, 0x9e, - 0x2d, 0x45, 0x4f, 0x26, 0xb1, 0xc2, 0x12, 0xfc, - 0xe2, 0xfd, 0x65, 0x7a, 0x75, 0xf1, 0x2f, 0xcc, - 0xda, 0x36, 0x70, 0x45, 0x97, 0x7f, 0xff, 0x74, - 0xf9, 0xb7, 0xf4, 0xa7, 0x5f, 0x3f, 0xfc, 0x82, - 0xa1, 0x89, 0xfe, 0xce, 0x66, 0x57, 0x97, 0x5f, - 0x67, 0xdb, 0x59, 0x09, 0x75, 0xfd, 0x03, 0x54, - 0xf0, 0x9f, 0x2f, 0x2f, 0x94, 0xad, 0x18, 0x32, - 0x50, 0xa8, 0xcf, 0xff, 0xbc, 0xa2, 0xcf, 0x30, - 0x58, 0xa3, 0x7c, 0xae, 0xbf, 0x5c, 0x7c, 0xb9, - 0x4e, 0xaf, 0xbf, 0x5e, 0x5d, 0xff, 0x92, 0xbe, - 0xbb, 0xb8, 0xfe, 0x80, 0x39, 0xcb, 0xea, 0x09, - 0xb3, 0x96, 0x01, 0xf2, 0x28, 0x95, 0xfb, 0xab, - 0x06, 0x80, 0x2e, 0xb1, 0xf4, 0x70, 0xbe, 0x98, - 0x6d, 0xff, 0xbd, 0x38, 0x5b, 0xff, 0x06, 0x98, - 0xa0, 0x69, 0xaa, 0x43, 0xa0, 0x62, 0x1e, 0xce, - 0xab, 0x8d, 0x92, 0xdf, 0x20, 0x43, 0x69, 0x45, - 0x43, 0x88, 0xb0, 0xa6, 0xfe, 0xce, 0x0f, 0xa2, - 0x5d, 0xfc, 0xf8, 0x1c, 0x64, 0x69, 0x21, 0x30, - 0x3f, 0x81, 0x05, 0x16, 0x16, 0x43, 0x3e, 0x38, - 0x86, 0x85, 0x16, 0x86, 0x87, 0x1a, 0xc3, 0x22, - 0x0b, 0x5b, 0x2e, 0x20, 0xdf, 0x1a, 0x03, 0x63, - 0x07, 0x0c, 0x92, 0x29, 0x37, 0x2b, 0x07, 0x8c, - 0xc3, 0x29, 0x3b, 0x6b, 0x07, 0x04, 0x2b, 0xd0, - 0x40, 0x70, 0x2a, 0x74, 0x40, 0x18, 0x20, 0x68, - 0x15, 0x23, 0xe1, 0xd2, 0x03, 0x2d, 0x3d, 0x10, - 0x78, 0x0c, 0x1f, 0x14, 0x78, 0x20, 0x38, 0x85, - 0x0f, 0x0a, 0x3d, 0x50, 0x12, 0x8d, 0x40, 0x91, - 0x03, 0xad, 0x40, 0x03, 0x7c, 0x50, 0xec, 0x81, - 0x96, 0x63, 0x36, 0x56, 0x1e, 0x28, 0x1c, 0xb3, - 0xb1, 0xf6, 0x40, 0x91, 0x62, 0xe3, 0x69, 0xe4, - 0x00, 0xa1, 0x78, 0x50, 0xf7, 0xbd, 0x0c, 0xc3, - 0x70, 0xb6, 0x05, 0x9d, 0xcb, 0x64, 0xbc, 0x88, - 0xd6, 0x85, 0x4a, 0xcc, 0xfa, 0x92, 0xc7, 0x8b, - 0x65, 0x70, 0x03, 0x6a, 0xa4, 0xa9, 0xb4, 0xd2, - 0xc0, 0xb0, 0xe0, 0x77, 0x0b, 0xad, 0x38, 0x6a, - 0x3f, 0x9a, 0x5a, 0xce, 0xcd, 0x75, 0x7b, 0x93, - 0xc1, 0xdc, 0xdc, 0xb3, 0x37, 0x19, 0xce, 0xcd, - 0x05, 0x7b, 0x93, 0xd1, 0xdc, 0xde, 0xac, 0x37, - 0x1b, 0xcf, 0xed, 0x95, 0x7a, 0xb3, 0xab, 0xb9, - 0xbd, 0x4b, 0x6f, 0x76, 0x3d, 0xb7, 0x97, 0xa8, - 0xcf, 0x0a, 0x49, 0x87, 0x40, 0x57, 0xd0, 0x41, - 0x99, 0x92, 0x8a, 0x42, 0x1b, 0x1f, 0x53, 0x46, - 0xba, 0xa3, 0xc4, 0x8b, 0xda, 0x1d, 0x17, 0x65, - 0xc9, 0xb4, 0x8d, 0x99, 0xe0, 0x23, 0x59, 0x35, - 0xc8, 0x9e, 0x1d, 0xb2, 0x3b, 0x8e, 0x45, 0x17, - 0x26, 0x58, 0xdc, 0x0f, 0x2e, 0x94, 0x47, 0x5e, - 0x94, 0xe8, 0xa4, 0x1e, 0x99, 0xc9, 0xfd, 0x0b, - 0x8a, 0x9c, 0x97, 0x59, 0xcd, 0xea, 0xa6, 0x67, - 0xe0, 0xad, 0x18, 0x7a, 0x7c, 0x06, 0x37, 0x41, - 0xc4, 0x4c, 0x11, 0xb3, 0xfb, 0x83, 0x80, 0x31, - 0x39, 0x0f, 0xc9, 0x5a, 0x70, 0x7f, 0xc0, 0x22, - 0x85, 0x66, 0xa0, 0x7d, 0xdd, 0x63, 0x28, 0x84, - 0xea, 0x74, 0x0f, 0xab, 0xc2, 0xee, 0x59, 0xcf, - 0x84, 0x64, 0x99, 0xde, 0x8b, 0x6a, 0x71, 0xaa, - 0x49, 0x34, 0xb2, 0x44, 0x54, 0x74, 0x3c, 0x54, - 0x39, 0xd1, 0xac, 0xca, 0x04, 0x54, 0xe2, 0x04, - 0xdb, 0xf1, 0x9a, 0x99, 0x72, 0xd5, 0xd2, 0x43, - 0x9c, 0xbb, 0xa4, 0xd6, 0x20, 0x6b, 0xb3, 0x4e, - 0x02, 0x48, 0xf5, 0x8d, 0x54, 0x51, 0x62, 0x00, - 0x1d, 0x87, 0x2c, 0x44, 0xf6, 0xaa, 0x41, 0x78, - 0xd9, 0x0c, 0x65, 0x41, 0xe7, 0x52, 0xde, 0xf5, - 0xfd, 0xf5, 0x32, 0x79, 0x07, 0x89, 0x25, 0xb2, - 0x05, 0xc4, 0xfd, 0x01, 0x07, 0x94, 0x79, 0x7e, - 0x17, 0x2a, 0xfb, 0x01, 0x9c, 0x62, 0x01, 0x49, - 0x8d, 0xe8, 0xdf, 0x50, 0xb3, 0xec, 0x3b, 0xc9, - 0xaa, 0xa1, 0xe7, 0x0f, 0x96, 0x0e, 0xc4, 0x60, - 0xf0, 0xc6, 0x37, 0x8b, 0x65, 0x84, 0x81, 0x40, - 0x84, 0x91, 0x4d, 0x07, 0x49, 0x48, 0xa1, 0x45, - 0xd3, 0xd2, 0xd6, 0x8c, 0xea, 0x2e, 0x2c, 0x7d, - 0x3f, 0xe0, 0xe1, 0x19, 0x44, 0xb7, 0x1e, 0xab, - 0xda, 0xaa, 0x01, 0x36, 0x9a, 0x5a, 0xe8, 0xf8, - 0xa2, 0xf1, 0xb0, 0x0d, 0x44, 0x78, 0x10, 0xfb, - 0xc8, 0x53, 0x32, 0x3a, 0x75, 0x6c, 0x57, 0xc0, - 0x6f, 0x5c, 0x61, 0xbc, 0x35, 0x15, 0x2a, 0x3f, - 0x35, 0x5d, 0xce, 0x6d, 0x67, 0x83, 0xe9, 0xce, - 0x2c, 0xd5, 0x4a, 0x3f, 0x7f, 0xfe, 0xf8, 0x89, - 0xa1, 0xe1, 0x32, 0x50, 0x66, 0x01, 0x68, 0x28, - 0x87, 0x1d, 0x64, 0x79, 0x05, 0x45, 0xc0, 0x8f, - 0x35, 0x84, 0x14, 0x51, 0x78, 0xeb, 0x62, 0xcf, - 0x8f, 0x89, 0xe2, 0x0c, 0x73, 0x41, 0x2d, 0xb7, - 0x06, 0x74, 0x49, 0x75, 0x81, 0x35, 0x17, 0x94, - 0x27, 0xbd, 0x40, 0xaa, 0xb4, 0x1c, 0x29, 0xe1, - 0x2e, 0xfa, 0x0c, 0x04, 0xf2, 0xfa, 0xc7, 0xd7, - 0x94, 0xab, 0x1a, 0x22, 0xd3, 0x12, 0x75, 0x1d, - 0x5a, 0xca, 0x3d, 0x29, 0xb1, 0x31, 0x58, 0xf6, - 0x28, 0xb1, 0x3f, 0x07, 0x68, 0xa8, 0x5b, 0x60, - 0x3b, 0x90, 0xb8, 0x52, 0x9f, 0xc3, 0x00, 0xab, - 0x06, 0x2c, 0x4b, 0xab, 0x17, 0xc3, 0x66, 0x1c, - 0x06, 0x4a, 0x07, 0xb6, 0xad, 0x3b, 0xdb, 0xac, - 0xa3, 0xca, 0xf4, 0x08, 0xae, 0xeb, 0x43, 0x27, - 0xca, 0x85, 0x43, 0x02, 0x8b, 0x60, 0xe4, 0xe7, - 0xb0, 0xf3, 0x60, 0x66, 0x4d, 0x03, 0x4f, 0x5b, - 0x3a, 0x03, 0x69, 0xa9, 0x60, 0x4d, 0x0d, 0xc6, - 0x29, 0x96, 0x01, 0x79, 0x67, 0xc5, 0x16, 0x99, - 0x89, 0xe7, 0xc1, 0x7a, 0x34, 0xaf, 0x8b, 0x19, - 0x75, 0x8d, 0xb4, 0x73, 0xe8, 0x09, 0x64, 0x54, - 0xac, 0xf8, 0x38, 0x18, 0xf1, 0xb3, 0x07, 0xd4, - 0xdd, 0xc4, 0xc8, 0x9b, 0x9a, 0x6c, 0x57, 0x5c, - 0xca, 0x6c, 0xcf, 0x19, 0xaf, 0x73, 0xc8, 0x00, - 0x8d, 0x81, 0x02, 0x2f, 0x57, 0x42, 0x4a, 0x0e, - 0x5b, 0x42, 0xe1, 0x58, 0x0c, 0x25, 0xea, 0x1b, - 0x10, 0x63, 0xe2, 0xcd, 0x74, 0x2e, 0xa2, 0x8c, - 0x81, 0xdf, 0x71, 0xbc, 0x28, 0xcc, 0xb9, 0x9f, - 0x27, 0x38, 0x64, 0x5d, 0xa1, 0x3c, 0x94, 0xc6, - 0xc6, 0x36, 0xdb, 0xf3, 0xd8, 0x46, 0x2e, 0x1a, - 0x19, 0x7b, 0x89, 0x57, 0x78, 0x95, 0xaa, 0x5a, - 0x61, 0x30, 0xea, 0x76, 0x65, 0x73, 0x4f, 0xf5, - 0xd1, 0xaf, 0x5c, 0x2f, 0x00, 0x4b, 0xa1, 0x01, - 0x75, 0xca, 0xe2, 0xc0, 0x9b, 0xb6, 0x19, 0xfa, - 0x14, 0x6c, 0x20, 0x5c, 0x5b, 0x84, 0x23, 0xbe, - 0xd9, 0xbd, 0x00, 0xbf, 0xcc, 0x1f, 0x72, 0x0e, - 0x50, 0xbf, 0x89, 0x49, 0xe9, 0xa6, 0xa3, 0x1c, - 0xb1, 0xf4, 0x02, 0x15, 0x56, 0x00, 0x1e, 0x95, - 0x39, 0xf1, 0x0b, 0x14, 0xf8, 0x32, 0x70, 0xcd, - 0x7b, 0x7d, 0x27, 0x8a, 0x6d, 0xc4, 0x10, 0xd5, - 0x50, 0x99, 0x39, 0x63, 0x0b, 0x20, 0x87, 0x6b, - 0x6b, 0xd7, 0xd8, 0x56, 0x81, 0xc5, 0x94, 0xdf, - 0x55, 0xee, 0xcc, 0x7f, 0xb4, 0xb8, 0xd6, 0x8e, - 0xb8, 0x6f, 0x1a, 0xb6, 0xcb, 0x94, 0x4c, 0x48, - 0x1e, 0xd8, 0x45, 0xfa, 0xe2, 0xab, 0xc8, 0x89, - 0x68, 0xb5, 0x99, 0xa0, 0x68, 0xd7, 0xa8, 0x7a, - 0xbe, 0x94, 0x01, 0x7f, 0x51, 0x82, 0xc6, 0xc5, - 0xc1, 0x73, 0x49, 0xae, 0x1a, 0x67, 0x5f, 0xe0, - 0x0b, 0xcc, 0xe3, 0x11, 0x1b, 0xe5, 0xda, 0xbd, - 0x48, 0x6a, 0x74, 0x58, 0x08, 0x2a, 0xb5, 0x85, - 0x60, 0xbe, 0xff, 0xb5, 0xce, 0x6e, 0x30, 0x60, - 0x35, 0x5a, 0xd7, 0x95, 0xc0, 0x08, 0x83, 0x7a, - 0x4b, 0x0e, 0x01, 0x94, 0x05, 0xee, 0x1e, 0x57, - 0x80, 0x9c, 0xaa, 0x2f, 0xa9, 0x3e, 0x77, 0x60, - 0xe5, 0x94, 0xa6, 0xee, 0x8d, 0xde, 0x52, 0x26, - 0x48, 0x59, 0x91, 0x3b, 0xf0, 0xe2, 0x18, 0xac, - 0xc3, 0x85, 0x0d, 0xd6, 0x06, 0x37, 0x4a, 0x8e, - 0x70, 0xdd, 0x49, 0xe9, 0xf5, 0x6a, 0x0a, 0xf6, - 0x39, 0x02, 0x05, 0xe7, 0xf4, 0xc6, 0x34, 0xc1, - 0x42, 0xe1, 0x1f, 0xa1, 0xad, 0x8e, 0xd0, 0x9c, - 0xec, 0xe8, 0xf9, 0xc1, 0x81, 0x55, 0xc0, 0x1a, - 0xb1, 0x12, 0xf8, 0x60, 0x8c, 0xd0, 0xd7, 0x9f, - 0x3f, 0xaa, 0xf2, 0x8e, 0x7a, 0xe3, 0xc7, 0x30, - 0xd9, 0x72, 0xcc, 0x2b, 0xe2, 0x78, 0x0a, 0xac, - 0x9b, 0xfa, 0xfc, 0x06, 0x83, 0x93, 0x32, 0xcf, - 0x09, 0x17, 0x23, 0x26, 0xb5, 0x8f, 0x34, 0x52, - 0xd3, 0x2e, 0x2d, 0x1e, 0xdd, 0x21, 0x75, 0xf1, - 0x70, 0xe9, 0x56, 0x50, 0x11, 0xac, 0x61, 0x04, - 0x18, 0x9d, 0x01, 0x6e, 0x57, 0x3d, 0x24, 0xa6, - 0xf9, 0x61, 0xa8, 0x6f, 0x41, 0xf9, 0x20, 0x9b, - 0x29, 0xe8, 0x7d, 0xca, 0x9b, 0x97, 0x0e, 0x00, - 0xdc, 0x90, 0x63, 0xd4, 0x71, 0x18, 0xfd, 0x3e, - 0x94, 0x5c, 0x92, 0xe5, 0x92, 0xa9, 0xba, 0x23, - 0x8c, 0xc6, 0x4f, 0x12, 0x70, 0x9e, 0x12, 0x52, - 0x9d, 0x3b, 0x58, 0x80, 0x98, 0x50, 0x19, 0x8c, - 0xb5, 0xa2, 0xcd, 0x51, 0x67, 0x73, 0xcb, 0x3e, - 0x41, 0xca, 0x04, 0xc5, 0xce, 0x0d, 0xd6, 0x6a, - 0x3b, 0xec, 0x6c, 0xcb, 0xbf, 0x50, 0x1f, 0x4d, - 0x3d, 0x75, 0xda, 0xec, 0x49, 0x3f, 0x80, 0x16, - 0xd4, 0xae, 0x96, 0xd8, 0x9f, 0xc4, 0x20, 0x40, - 0xee, 0x29, 0x07, 0x30, 0x82, 0x22, 0x5b, 0x9b, - 0xaa, 0xf8, 0xa3, 0xac, 0xa9, 0xcc, 0x3a, 0xb4, - 0x40, 0x6c, 0x15, 0x9d, 0xa8, 0xfa, 0xd0, 0xca, - 0xc9, 0xc9, 0xe3, 0xb3, 0x84, 0x4e, 0xb2, 0xc8, - 0x29, 0x62, 0xad, 0x0b, 0xe9, 0xe8, 0x51, 0xeb, - 0x1e, 0xf3, 0x51, 0x28, 0xe1, 0xc2, 0x65, 0x12, - 0xc7, 0x2a, 0x01, 0xd7, 0x1f, 0x2b, 0x95, 0x81, - 0xd3, 0xc7, 0x2a, 0x56, 0x2e, 0x03, 0x3e, 0x56, - 0xab, 0x35, 0x8c, 0xc3, 0xa7, 0x27, 0xd5, 0xe3, - 0x81, 0xf4, 0x45, 0x72, 0x7a, 0xd1, 0xd5, 0x4d, - 0x4c, 0xbf, 0x70, 0x97, 0x18, 0x56, 0xeb, 0x9c, - 0x4f, 0x5a, 0xa5, 0xe7, 0x18, 0x67, 0x4e, 0x36, - 0x3d, 0x5d, 0x0f, 0x4a, 0x77, 0xd5, 0x4c, 0x69, - 0x4c, 0xad, 0x1c, 0x7f, 0xb9, 0x9b, 0x61, 0xb7, - 0xe3, 0xe0, 0xdc, 0x90, 0x6a, 0x27, 0x76, 0x0d, - 0xfe, 0x96, 0xc2, 0x7b, 0xb7, 0xc5, 0x5e, 0xcb, - 0x39, 0xca, 0xdd, 0x76, 0x4f, 0x47, 0xcd, 0x72, - 0x5a, 0xf2, 0x54, 0xcf, 0x6b, 0x13, 0xba, 0x27, - 0xe3, 0x11, 0x45, 0xe6, 0xb5, 0x46, 0x99, 0x82, - 0xe8, 0xf3, 0xa0, 0xc3, 0xa4, 0xf4, 0xcc, 0x35, - 0x01, 0x12, 0xfb, 0x7c, 0x09, 0x6e, 0x49, 0xf7, - 0xd9, 0xd5, 0x09, 0x55, 0x3b, 0x1e, 0xe7, 0x8c, - 0x1a, 0xa9, 0xde, 0x0b, 0x04, 0x2c, 0x9f, 0xf1, - 0x44, 0x3d, 0x20, 0xa9, 0x8e, 0xeb, 0x4b, 0x5c, - 0x6b, 0x0a, 0x3d, 0x48, 0xdd, 0xee, 0xe7, 0x18, - 0x6a, 0xcd, 0x1b, 0x88, 0x04, 0x9f, 0x6c, 0x9f, - 0x34, 0x12, 0x7c, 0x35, 0xa1, 0x56, 0xac, 0x01, - 0xbd, 0x24, 0x10, 0x41, 0x2e, 0x5d, 0x2f, 0xba, - 0x70, 0xcf, 0x0f, 0x23, 0xae, 0x0e, 0x4d, 0x05, - 0xc6, 0x7f, 0xbc, 0x88, 0xff, 0xba, 0x01, 0x82, - 0xf5, 0x3a, 0xfa, 0xa9, 0x51, 0x1e, 0xd7, 0xd0, - 0xa0, 0x6f, 0xa3, 0x22, 0x81, 0xeb, 0xda, 0x7b, - 0xb8, 0xb6, 0x7d, 0x4f, 0xda, 0x34, 0x47, 0x5c, - 0x60, 0xca, 0x93, 0x26, 0x9b, 0x96, 0x5b, 0x5a, - 0xa0, 0xb0, 0x9e, 0xe9, 0x02, 0x7f, 0x8f, 0x8a, - 0x62, 0x55, 0x73, 0xb2, 0x6b, 0xfc, 0xa7, 0x54, - 0x74, 0x38, 0xa1, 0xa2, 0x58, 0xf8, 0xd9, 0x57, - 0x86, 0xf1, 0x8d, 0xc8, 0x21, 0xcf, 0xd5, 0xa3, - 0x73, 0x8e, 0x78, 0x70, 0x02, 0x90, 0x82, 0xff, - 0xd0, 0x95, 0x60, 0x3b, 0xcc, 0x05, 0x7b, 0xf3, - 0x26, 0x70, 0x5a, 0x00, 0xa1, 0x5f, 0x75, 0x7f, - 0x97, 0x08, 0xd6, 0x3e, 0x85, 0xd7, 0x1a, 0xf3, - 0x09, 0x10, 0x2f, 0x39, 0xd5, 0xd0, 0x3c, 0xba, - 0x60, 0xbf, 0x1b, 0xee, 0xdf, 0x34, 0xa6, 0x12, - 0x7e, 0x07, 0xf1, 0x1b, 0x9a, 0xb1, 0x89, 0x54, - 0x45, 0xdd, 0xf5, 0xaa, 0xaa, 0x48, 0x96, 0x54, - 0x5f, 0x4b, 0x67, 0x0a, 0x72, 0xa8, 0xf4, 0x8f, - 0xfc, 0x9d, 0x34, 0x3e, 0x72, 0x3d, 0xc1, 0x49, - 0xc3, 0x90, 0xde, 0x71, 0x20, 0xce, 0x6c, 0x16, - 0x13, 0xc7, 0xf8, 0x1d, 0xa6, 0x31, 0x18, 0xd3, - 0x40, 0xd5, 0x8e, 0x5d, 0x17, 0xf1, 0x98, 0x7f, - 0xec, 0x1f, 0xd2, 0x59, 0x43, 0xbf, 0x33, 0xe8, - 0xec, 0x27, 0xcf, 0x6c, 0x9b, 0xf2, 0xe4, 0xcb, - 0x9f, 0xe7, 0x57, 0x36, 0x01, 0xfa, 0x7d, 0x55, - 0x4e, 0xd3, 0x33, 0xf8, 0xe0, 0x3b, 0x9d, 0x18, - 0xdc, 0xb2, 0xfe, 0xdf, 0x9d, 0xd9, 0x76, 0x76, - 0xb7, 0x98, 0x2f, 0x17, 0xf3, 0xc5, 0x79, 0x1c, - 0x2e, 0xce, 0xf7, 0x61, 0x98, 0xac, 0xb3, 0x4d, - 0x1e, 0xcc, 0x9e, 0xfe, 0x0b, 0xee, 0xa1, 0xf0, - 0x3a, -}; - -// Identify size = 3073 (9189 uncompressed) -const uint32_t command_identify_size PROGMEM - = ARRAY_SIZE(command_identify_data); diff --git a/out/compile_time_request.d b/out/compile_time_request.d deleted file mode 100644 index 5bff05d..0000000 --- a/out/compile_time_request.d +++ /dev/null @@ -1,18 +0,0 @@ -out/compile_time_request.o: out/compile_time_request.c \ - /usr/include/stdc-predef.h out/board-generic/board/irq.h \ - out/board-generic/board/pgm.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/ctr.h \ - src/compiler.h src/compiler.h src/initial_pins.h diff --git a/out/compile_time_request.o b/out/compile_time_request.o deleted file mode 100644 index fbb513a6dde954b674714d1d782a50b5a9b70e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303480 zcmeFacU%+M_W+sz0Te~CVK-KS0wy6qVnG8WfI=t<*f&x_QJN4G?7e|y?IQM$xYkwI z-g{YWYwxbT_qy+#duNgX;+Efg|Glq%GI#EsJGY*G&K-uSLey4#K9Bv!=WXSgb8IP( zx2=#KncPDSwhkOJ0wSpJj;D_%wgkK~0xkJW-DHB4zG5lIXUd)s=fqYZ= zNgyv}%9=sGIs7~!FJsDDK;8v@UXb@@%0!TNg`W@P=vm z+c9MxkZ%pY_K^2w%EXYDz^?=3J2GWb$a}(133)%JOa^%``1wOVfGP8aybt_TkXJKh za>y&-7YO+vrmPL*+rlpx@|~Enc93rmzs`^kVaj|V-vNH1kk>F}9U-rTUl`=W;Wx&f z$D_Mq4>=yM5?;9ftnBSDYi%P)PBZdsaJ{VT1z2QdL!Pj?s-zh!J~Rl=tmreoE#^pd zeskw=@`U7Qk!vlS2lI~2Xtt_V?dk@&x0z}xs9Pfk3l_tLv{==;t^Hfb(6P0vj5XOz zP0a9_Cyg*e2V>p7#wWSH?=d@Pp1hAt4RfRBDPv^uBVn*6=C= z7*76BF8EyEDGbxE4rELt;l5g9?0{#J3HR0UPVl`JmXiug*$RA~&2+f0K`QY0weSJW zSkVlrewM9n#k1LOs$s*gg%4TUS7@Bw|d9k*X!?vsw(Cw|=i0=Q4q+)NP7kj|}u{*ZwScs8$1{dMBk!UweT5N<}p z?L3^@UnI8+9rsBzH`A4y>CSDfCw)?r0Jxst@GacXOaeEP%FP(LnL*slNN#2VH#3!+ zna#~C;AWO{GsWD@CT?asH?xnMIm*qP;bty!GuOG9d)&+uZss*N^NE|`S#g%ij+=4h zW@>UX^|_g*G*jy^5JSNMs|K~s;!TjCO0DO36ACw<@#d^;RcEp}DOP+Hka+yn&N625 z1SwXHIwQ@uC%nksJ`e6`RX18S!&KGHN=T~KAuaXdBlDO9PwSF~dbJ=A>yd|^{Lk>9 zKDqaHqN##O+c9YeCiP=d6_W-rX=f(YFlhvn>X@{P6OVRQi=PM#n|4y0d03Z8>oaLX zCKWPi6DDoOq%D|K#H1~m)Qw3!oQP=06FBf`N0pfeRhZPt2^h8$zqw;|2W!WAj#ZuK z`oS_d^7j7SMi~7V4PlzN0hhC8}4t4$i8+2ajo*yoM8MP`Vb(+J*-_krj@30_#S$ z2=Y7|Ya2TOd17NNpfaM3wXHQRvbL$fR1#EVZfqT_D^w!))^#h}qFB$fZtO@4R#{h} zH`}eNGSzojJ5lk{Mz9SyAynRLUCmm+KDMt;>)9}stn2XwwMn&lOcmN-KEDR7XnPS* z8An~eCeuR$wyh?$1cc(-SU0y~?r0T3W%`PpGc&7-wdn)y)!MGMjkUcEvlPGw0XFfq z|6TvL0{>fq|E<9PR^Wdt@V^!K|MdzG>q@B=pe5zY%S#SFs>v-ce^1*fU;h8TgxhlY z(f*qfA|ZkB2@+BZaz!&LPk=^E6gGKOk`j=i3W%g7ASOjY1*{;bNUk6k!#%Nvk#~qZ zDG*|*Z4Sx;NJMswF`a+fA(f`zqwL6gyRg~pOZFplQN)7%7_ z6w_oqO*YeH8%=hS#C8|W?WVasG`E)~2WjCUnmbIBmo#}xlTmal(DDe2TtIX4XtIzd zi)gZhB<9_*YNFSN^K6@vDN#IWMecpb6`dG7fr4BKo(p~=_i^MJPp%Xf`;hxoawS+O z=uhs+E(^#m3&_q2=#~oTmI_Ma+Anlbf2GM*nrx>DgL%Kx+$Eaap$W4muW9ZLO}@}% z3|%7z6AEc=IZf8mWD7}b>GBJhGjgRfp$v}8M9|mB%uqm4#Eq1=lPhI~bmm;9g&stnfUE_> zz`RHaWn(`=vbLlSSv3Lr26+Nsa_vB_WCaC5!cy0-Oow8m5y5C?2ZqkHd0u1$k zNekc78qKPcsBOlCv-q&P*f z>HjMX>P_0GtSJfac`8^&8(s&v^7;JtuPbAMy8%CbR%RTpb#_)}>*Tb!l)2#t)<4yOdjC`rDq#?@M|5L z9+MgGo@hujWG2Va9FJ$r%`jwnB=LY5WEtbZ)9;=Qmo!=um!6s$lNJvdm}_!cvN1U( zMGsD5d;v<}aYk~AL2pb>HRv-9{jv>NMvpl3979ua?irbectZkIg_TRr><2gYJYGg( zD!qX!F`0>Q5Ar_T)0*@i24E_u_s{~&G|oNA5EF06bk8!zWMUN5~XXU1nG4>Zu1Q_|BC-Q&}G0Nva3)emB@T#a!+rWk1J2F4+-!K(Fdsf zgF}^&1_$c(LQij4-t07^AyaRR$?6N0)Zu!yQmfOeLzQZ8nNR{nT3vu%*DYKn#KFNN zp{Pq(WPmofyGpMM4pn)}^!{O?;Y#RMD8}u=-PC8qWX7Z#pye!?#X^atno>)Jo|Xz_ zmI}Qr72*`j4ao;4;UA=o)JJKw!GRi804xU1wSRI}GVGI3ua7YrGm~SpjRw75Br@c{ zMABkXQgYcEuDGI6u-5tz6|5Jm0WJ}=g1aruPRmM8Of$p_VY{H7Iz%Ut%FC}k;7dlf zQKSylxdD`Bd3boZ3faMC8PehtMEFjKJ}gQX9;L&2u0l6q)23Kihy#Fzq30l_Rv)ZU z2Wx_L-I#fBx6xCY19J;iX|>8gl|EeAEhJ1CKmmj;L}+mrnsUJ!R|F$ynt+iWTE~pP zNFkMadiqGkp5AgVnU9Z`TK_39=+9*FwSR}$Ul*5Z+4>A6e zsN5A^0cvP4N~_X$4GULkq@CqmwZU}RJf&SpeO1?Rct_+e5lbboqUDxbG)PFw{B@C{ zCfvuuCPLhgw!%1LramP-y>E7g-n^esJ_I*NsS68*LHmbkv@m`$>MjKC=)#C|5}1Ec zICDhMNL4^^q(qbk$m5ognQlyXi%Ch2$#NB9iI9}g8F8Q zk^VvYV69TGWGEYq7D*)m8#BBhQe#gP{1KvZeAq6S6gyIe0O5eHw4FscZmB>$U4La=ybw%#5Rv8R{B%UkM2u*KrV z;O?cCc+)pwonTNL)}g?1EiwYVj?4*M zTFD?waD~e$($bUDpkZJcFjEc#0l?7f%?}C54D|Ph&5Ks)wcRvGAb^1al|vlUc2S1w zC1j+fmmIh?vphjzTAhh!vHY20s)`Uwr7k#3Bf@((jWSf_7Of14QkfAIp+wXKS`Pux zL&8ex15#p+U?+J?C~*@4;Ul$a3y7Lgrd>AkIl}dj*_B2fA

    }{+4%yi;$hU3h|2b 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�$;i2sCs=>Xz?IY9j@h~I&9 z+WH%|Ul*a@GMM!1wW!Z<;=7|CvN!RAH&Xpr;!DsjA3)sZFHI%hjQHP7eB7q$e+cmo z!zfFATK;^v7$y$`R&q#kI>igHk&p`eCf%xXg|6hsUk8<9swQk>zS5d8gZbSSn z#MSo1Ps91nX2j3HaomFV@Az!%tJrpb9jDvff%LUKmG4A+`Y7ck#NS81v5NSX*k4}1 z>Adnmt(_^aD1zn=K+ z=s$c;%l&9Ul9LbnCibF{sa2kKM`+_cFO9X)w>N)u5A4r<4bo^{|ym`j2}2ic?aU> zqaWCXczcxpt%$cpdFW2OHGFy#AA|hqNBmgCr844Ax7Bpk5HCYPxAxrj>kq{FVWfX- zqWX*?erKI>UeD)O#Ni2~Z^V90A^slXOe67sPF4RI#IN62`5fZqIKB&sFGfG-NaBa1 zUvxb2Kf&h|;=L#7cF!Pw0qV=S#9u%=av|}Rh)b6f{~YIo*D%Lo{4pg5{iJymg zoL>@Of_}(%#7p*7pMMcwh4ackh##=G>UsU8BT(Mjq5fHY`L$8?ors^mr*eyDrtgma z$2O$j9O>ynd?)mC`VcSgq5cDikLaMhg7{LDlU<1S8KQby_sP;ZANeqx^yR28dlP>H z@nJ0S2d)24{5qs_DsdZsX(qmVUrpyB#I3(LkN9TYRKJM$&uFKPCSHd4a{}=(DCegV zZ;y82Oyb4pSDa7$2K3V|CcYlprz?nmhB$K_@pY(=HxvI2<>3zELs75qCH^M_h=+-n zw$prjg7~9-ls`+n59-fL#Q%+c%WK5DAV1$GZudEUNc^Iqx?Nsh>#8Q@Uz7e(q~{0X zub^N3EAd|uhg;#eS^57R?M@rwbvx*G+Y^5haeFi3-Eq9OAbtkg-|dLMjQqECy(~Q^ zVw_?p(tn6@SVDa8FimF_@wRA>b|rpbx$1`yuSGjPl6Y^lNBa`L2A{_hw|V4~h_^=k zsV6=Q@o*aPRmjg-#82K?)6eUS9fG)VIO#hLQvI>SD=>a?67jRpk3Eg~X!SXp__a8% zzkvAD#j3xQ_%HCkiun9qs=uCiCyYzj`es&6zCrtV7wNCT^{@MhFU0uLBgF5Rpxb?t z`1oq&&l6t{=R2AS?6C#(O*#Q!o)`4_}*8Ls>r;)~GU{Y3mcmZ$}b8U@P@Gp7@rH%6Z+nd(eKJLHa+?zMo5c|9#ZwLgMEm z?p;p&*j-hB4e?U6*EbS>2R^qE|7m0Oxrg`zXg41u{vx=ocW32fTb!TTd8F|#3f2Eb z^7$S7RpLMORQ;R8k3ju>pSX>$eoFjrI4)ljUmtPrJK}|?|NkO>ZL_B558_4j%Gbwv zs_kz#__QNF2>nT3f3E||e^=6Ic`NWf#P3D^BP_=HcdD) zaeFZ3&q1iC!--Es`PrNJGMs$M{)70LB?@?6>mJbayt0=Nc>KIpna{QY z1#PSFx4f*Kx&(n?d*bs^-ue)~82M)FRGH7c-PM=pk3EZeVb4}D{r3oL!^r=r$?7wj z_{pfJV~O`~ulfUtpS^=}o+maD$8kF8ZQXF2D{krh00DA+wTtuZ6!>u5n~C<9^^12> z1J?hBz{YX%+Ci%4cBd2iY25C#9j1D2cQ!=+ARNT$pNDdYx0n|fst>n2>u?^y@$)Fe zAC8}M2dfXlMC{+YyYgCni}`Hq5Xa9S5I8x07NA}i{9Mtf1{^9tIp5y1IQ&hG})`VSn3A3@yXI6NNZb1?bbg7a1G{~v`NLU@X|+ip`eKz77@Cu|U> z0WlxkMfFo@yVHg!;P`wW`Ynf$zSGtU<`G{H`bETdMEN;}_$V|uClPpq@lJgeyhnUa8wH;dpN%;A74hp3SAQU0j(YSP@d@Y%6i_`KjB>sa@!cn?K_}v6 zHOg(hRf`+1p&jJ=CZ0rxr5E{}3jcn@H%FW=Cw}j~y4_ufe}eM72k}RDQ2j{a2XC*u zmiX~oD4#%l%W29FBEA~sp_%y53f0@amX<$P;J9!+{0jm`JN;Q)-%*Wh`K_3*EKni3 zn=$_i@eS1@<~t$ap*Y6;TLc(nN6fE5escU=g#1T$Jk}TPs_8*?#C%)y>vp64It<3c zh~J60%K7u>$tvXh*#yTI)jQtqp78HV{*NO7b35`RjxV<(cS6tka4X^ivNhiBwKyO+ z{4qbJpC*Lckyi?p52kcpivB8!MeMU4&hL<{m=8uf$n8jLBm{>!)~_9*8{~H6{w~U! zDLr4JfN(o90riyIk#9$-!6Nc`6WcwS`1B?PeB9@^DCgr|2!B5AhxArGANOxi@cFnu zySeK5xPMotoR9nK$bUZWP4%kh^j|hXIj8?5>@TN(0@`0r|I_Hla{5n0J>~R2(>;Is zXO}7G`g_GVdj(B91>e#amM zi-^zIKmo^xJyC8?Abl13Gp7=N1v_*m@tLT<=Mx{dlY)zhAF-u^D~R_(eY}qNcO4Ym zOuT3x1$PkdzMq17iT}UO&IdlK>dNCI)`A5!AXQMLDN>15!b~PWrVSbuB#Ks0lqhQc zP9PAHF@H3oD_Q^IA8Ly9Bekrb0MY`ol&W>J6eU|*O}AnLT1^!&{;7@aZbfUiv|HW1 zXU@5A-kjX?-o3e>&&+%8yz{%?d(XY^&YSl)UV?_b%-&7?`4`Oo)M7OJirGJ<@pC`3 z|9&v5A7qF{~`Ll8_n$9)Gj=q7?q#r zqwhcB`RMz1`1XDsjZ1uc&l`^gq3U_#&vmoFK;TW9iezo^_Tpr2nBXiL{hS|4Op?y5FubYYXTxK5= zL%Y7NO>-Zi{+7@D`>#R&>CE0JSt}`v)@Adhbx%RefzW>DRH53@$?)6ka-tM2%4w{pv^y6aD-I zum{U=lpu&)3ErD4PYd!sh0>3@F_7r?G#1(pX#WbDm2oBpQVvdD4D-(Q|$@&UWQ zJoK}X_V<_PcAvk$JWu%S{_-63+5P2-V1#B->gd`8Aa-m680a z=H^I#Q?kA?e@R1YeoeBfbxD0oV>!;1*EQ5OMvQAJtE!rkHwQ>pR8}_$+WNYNq&Zhr zLR^t9L#nB$fvFW$`j;~ zYHdnZH#Ri41UOZF3trm&T$9lsDp1&p^Ni$7v~u+ z&NE${i(H%&4$cXe&?Q`2JK@sW376JRxU^uxr3Di%Etqg=!Guc-CR|!D7IkUDSk$Er zV^Nnzj742qF&1@c##q#)9b-|KhKxmBS~3<5Y)bV*K%;46YfGv%@JE9N)4G~uLrY!l zt>y5WY_aXuHPj^AEc{ZHO_eK>EyoIYgal)6oTUBFjxfi%qHSSndx9%Qy z>%eih4jgyukuk@}xOL#TTdNkjb>Kp`vOAW=t%nu5b(xr3A1HL|VTF#lyY;X_w;opD z7RZ=e4~w}KCgxVvm|NUqZvEG-rfwy7E4W+db!8}mGu`}UfW!^ zQXQJ+S{NwHjjJ;MXrM!6BQxs;7st0QP#CC$-XbEQe~2rgM~Ew-4~Q$F)y0+2&f-dF zS#jmyw#-B*sG90_SUFcXQy?M>0<#T@UO`aw3WB0n5EQ+Fpy(9@MXw+zdO(j2py(9_MNi#?5`YYfUSVK?f}&R# z6urWr=mq5(lxa|&K@H+-kIb=D8rtD(W-Q;Q&Uj>>?qYthpI%p4U!JOKX!c_7H|pUX z&V;7Vg3`H9+&6{OqUxw_wUTBW)WOw;B}vFGV>6iOM5xaR&ws*?mOAVk$!}DWQe2G==N4?oc1Pe8Zbc zdb*4x;@88wNo@5?4g7Woy*^*==l`>VzQe$WYr<^Hug}Z-`FA&Lwe6ZGu-@D zWd|Ew?&G=J>Zd3LT>3LqeN1V2nV=Awe?MJU1U5+A7cLKln3SlGKlRdsCI(JKEA%J0 zhE8WkmsdsRDI3od6m#f0RegUt*dTG=dV>x84v&QINMsrlu*LNID^2C^nurmNQedI{ zaBB%KzsINRxYAJdb;1caH|cn7!Kuh+`T=^daoc3n0e^y;wdGGc1$ChDCtH5S#aQtQ z5(6JDg|y|*BYvSDuI6p|-Nf%EJ@9kYye)qf@#%6#%Eg}FPA_WF_ZtI$k^}z@;_K_a zbpdSa-&>0DKS~1*@S!W%)_)#tV00O###_g~hh9h%B_;6Ba^No}zP`>}7r?guM~UA_ z7w`f<&w>B9@kqRh0oh_^`)AwVdV29rj*kzQAlt@&8T>G)G}QQSEu--Vvxz|cVXU>~ zuO$AZq}LPM`u7q4h>s7K=-TpsPW(GHn5MS;9(uviQ4&D?p)cCj-rGNie{~x#k`CD<4 z?te3suPy%-x-g!GL62w4@2Es@DJh};MGpM;iQmP5Y*F0)`-rc1?0^rqpxM@c1KkHU z)c)VM1nYm43Jm;W2mZud<*ZU3PP}j1`uEl$zk`&(KTplu*8k#M6n5go`?lp*EJJ>Z z`X%s7R4$xuhQ~df#|5!-*rwRI%y(rueqKBVp6aSR`c6xXZqDlXhrT$q# z|E&Xde0blBiT?*neU93BFzN4o)s7GE%`@pIy@vX*_FE?C_mDoU|HAv^O#DT^u`543 zkI$t4GwH+l@SZi3{@btH@h7VPCno*Z->}oe`^QZB7cKQ|g1)NHjt}qUGVwpR)E^M^ zkNwt;5Bql}{){*6^!bARfTjL=LErEe^8W=V-Zz!iTYf;$k349n?-KM|Ngp=;eIV#( z!;XzgVcYN6;pX@sCVd$HLP5XsF!ICnDM5eA+o;#~kK>Y8R=pV6Am|tLqszy72bvVT z{azOI7t(=?oRd6MdWP#i74%oOqv!l=x$f(p^-Q%xO?kF^Mm4jE^ymAHYM%4qJtZdn zJESiO(YFiwufoYPl}ggznJ>q}1UrhS2{r}PGJPGC5o}ok{FOj~&Z&dS~Un1zIz{ysX!un66p#L7}E7Q4TzBvDJ zLH~EsFV9HRb6meq&?n(!uS(aXzcXK4{|`a`Q_@#wr0F@XKWCH|({{h>M0(K6J$|E_ z=lbge{btgy3en#$=qJI+W|h{5=(_~{ZqkRf|L+C;xp1;trTP#)y#J75((ZR%Px?x~ zQO%RDXPqtR|3><-@wZvf*Tczjm69F_XE=Y8px;mWl_C25f_@&HY**>F5Pd`)prSIh z`(0lo{o{V4n&;)8Cg^M6WW7pZ{qIIW{~qaYP3MyN;`}v&{(3msuhP1VG(E@ldj$Ov z(ua+|e-!i=&;yym#-G#F{vDO6-Cxulqz^0qC4#=>JD6+O_R}WlcaT1;{yz}(pOHRn z`*}^!r|5z8Vf#{>9=~mp7BgU z|D9J+zhkWDnx5hOIf8!H0DA7rmJe$GYe~<-6v_Dz_2Zac{awgP3zc3S!Wr~GrMF%k zSW~Gq{T)f4KijP4wO;3Yv%t?Ielh9wMC0B~;T8#Wi;CG~uU-4!11pYPyzfa(g z_yhyjgV|`DSAK1HRp1}F2Zig^?=vLeKdGj=I=cQJ3;f={AYc2ZGx6#5@`+<`n_|U` z^pSqOIzHe}Jip_W-qe3rKY}@ysoyt9Q2w22s`a}3`2s)n8J1rSFIh?Jwef6$-@g(0 zngje@N~HCkUEsG{@~;y3M-BX^4E(zVeupK0mB7#0G`RlH82Gycey1h>Nr9hd;6H2N z9~AhzEctH;{1OAd%fKITvbq0vTk?-pdQ<-|Gw^pC_=N($*OEU?;HM1yJqCV-!0)%@ zFBbT#4gBW~{D%bo5ljAk0>9J1?>6we1b*amyYc5~f!}4||IEODU*P9h^4}Kty$1fz z4g8bT{t?uakN>%r{4XiJss9fc_%9mx-w^mwOa63$AK5&3{Od9BlLEiQl3yY4#~Jwl zY2bGV{P~vr2L*oAz<=4m|Ea*Qu;f20@JkK+R}B0Q1b)hr|Bk?~Fz|Z~{LyOv&eZ?g zE%~FA-qiow4EzHIezCysu;kAa_#FoRYX&~NFWyxDPD_53z~5@%!zpRL|Fu@&@3Q2t z5%}E(exHH=oWSq4tutOL2V(>5oz82mDF*KW&>R=x2|_9HDRf z6JIVC^rfW7UX;m!FE0}G^94OGf3u)3BR!7`*FP-iD}?%U{SHCDl=OVRlIwpd=u?*E z|3J{US(g7;bs)ghf7(gU4u5##mu}HqLBHCv{<8#qho$~HLBF2#VeNm5pzpM-|2jdx z)w29Q7WBI;%fC<1cUkKHAn3bE&$oBpe}}8zmcbz z`%ez(d42hEo}eFR$)6+Wb1nH*ftx1Wyd+k!qi21`CdUEk+VTtEB_bNd%f z;5Elwv|i^qAwtNp*iVt~~WV=P$>HlX>A+CV)f4SJBUy11Z+rem7pQ)`5hjg>HGVU?|**BIS%~K=*Cqw zJY*#vD~Vrr9B!!NS`6e~oVpH~K3ei!k(eSBz3-v7P!XYsq7_+=g$XKeXx zU&Q+RpWhL4;BO&**z-H2`1cG)zW@0haR>hR%P=7P`U%_mcaK7T)E9qvx2A3U&nEuk z49FHEQvHt*-~arMnGXDyF30-c#DHv3)&=d^8L^6xX6LOllXrcBENqE^8L^6nB&0TumIz)4)13rl|@#Pw*S?+ z$S);tX#cqm{HKWD#ei&4-2Qus?|**BB@X;$S7H5!+W&jc!ulVj0z>`hIq?6B_<32; z9=xw4#lI&H`5nIaU+%ykyAbQ&IYfTh*~s@lzvBu6|GO%GWge8CA^sD3z$6du+ac`# z^_(-f{tFEJAE|sHPyIWo3sQCi*8lA#+JaNf*VB!(|IGC>e}Q_nIxA_No^B_7mXlgo zNP2G9I&I%edZcNq+TSMqK*p4wW8sYKR(gn33G*vEcX0f!QE;u-|G%I-oDEr(yolDW u>6r1g%5jT9uWtVvbnOx-j{Yy|52)*-{0Vseq%NN|>IbO&y{rMa{{I09cfxl7 diff --git a/out/compile_time_request.txt b/out/compile_time_request.txt deleted file mode 100644 index 551d451..0000000 --- a/out/compile_time_request.txt +++ /dev/null @@ -1,263 +0,0 @@ -_DECL_ENCODER starting -_DECL_ENCODER is_shutdown static_string_id=%hu -_DECL_ENCODER shutdown clock=%u static_string_id=%hu -_DECL_STATIC_STR Shutdown cleared when not shutdown -_DECL_STATIC_STR Timer too close -_DECL_STATIC_STR sentinel timer called -_DECL_STATIC_STR Invalid command -_DECL_CALLLIST ctr_run_shutdownfuncs sendf_shutdown -_DECL_STATIC_STR Message encode error -_DECL_STATIC_STR Command parser error -DECL_COMMAND_FLAGS command_identify 0x01 identify offset=%u count=%c -_DECL_ENCODER identify_response offset=%u data=%.*s -DECL_COMMAND_FLAGS command_clear_shutdown 0x01 clear_shutdown -DECL_COMMAND_FLAGS command_emergency_stop 0x01 emergency_stop -_DECL_STATIC_STR Command request -_DECL_ENCODER stats count=%u sum=%u sumsq=%u -DECL_CONSTANT STATS_SUMSQ_BASE +0x00000100 -DECL_COMMAND_FLAGS command_get_uptime 0x01 get_uptime -_DECL_ENCODER uptime high=%u clock=%u -DECL_COMMAND_FLAGS command_get_clock 0x01 get_clock -_DECL_ENCODER clock clock=%u -_DECL_STATIC_STR config_reset only available when shutdown -DECL_COMMAND_FLAGS command_finalize_config 0 finalize_config crc=%u -DECL_COMMAND_FLAGS command_get_config 0x01 get_config -_DECL_ENCODER config is_config=%c crc=%u is_shutdown=%c move_count=%hu -DECL_COMMAND_FLAGS command_allocate_oids 0 allocate_oids count=%c -_DECL_STATIC_STR oids already allocated -_DECL_STATIC_STR Can't assign oid -_DECL_STATIC_STR Invalid oid type -_DECL_STATIC_STR Already finalized -_DECL_CALLLIST ctr_run_shutdownfuncs move_reset -_DECL_STATIC_STR Invalid move request size -_DECL_STATIC_STR Move queue overflow -_DECL_STATIC_STR alloc_chunks failed -_DECL_STATIC_STR alloc_chunk failed -_DECL_CALLLIST ctr_run_initfuncs alloc_init -DECL_COMMAND_FLAGS command_debug_nop 0x01 debug_nop -DECL_COMMAND_FLAGS command_debug_ping 0x01 debug_ping data=%*s -_DECL_ENCODER pong data=%*s -DECL_COMMAND_FLAGS command_debug_write 0x01 debug_write order=%c addr=%u val=%u -DECL_COMMAND_FLAGS command_debug_read 0x01 debug_read order=%c addr=%u -_DECL_ENCODER debug_result val=%u -_DECL_CALLLIST ctr_run_initfuncs initial_pins_setup -DECL_INITIAL_PINS "" -DECL_COMMAND_FLAGS command_set_digital_out 0 set_digital_out pin=%u value=%c -_DECL_CALLLIST ctr_run_shutdownfuncs digital_out_shutdown -DECL_COMMAND_FLAGS command_update_digital_out 0 update_digital_out oid=%c value=%c -_DECL_STATIC_STR update_digital_out not valid with active queue -DECL_COMMAND_FLAGS command_queue_digital_out 0 queue_digital_out oid=%c clock=%u on_ticks=%u -_DECL_STATIC_STR Scheduled digital out event will exceed max_duration -DECL_COMMAND_FLAGS command_set_digital_out_pwm_cycle 0 set_digital_out_pwm_cycle oid=%c cycle_ticks=%u -_DECL_STATIC_STR Can not set soft pwm cycle ticks while updates pending -DECL_COMMAND_FLAGS command_config_digital_out 0 config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u -_DECL_STATIC_STR Scheduled digital out event will exceed max_duration -_DECL_STATIC_STR Missed scheduling of next digital out event -_DECL_CALLLIST ctr_run_shutdownfuncs stepper_shutdown -DECL_COMMAND_FLAGS command_stepper_stop_on_trigger 0 stepper_stop_on_trigger oid=%c trsync_oid=%c -DECL_COMMAND_FLAGS command_stepper_get_position 0 stepper_get_position oid=%c -_DECL_ENCODER stepper_position oid=%c pos=%i -DECL_COMMAND_FLAGS command_reset_step_clock 0 reset_step_clock oid=%c clock=%u -_DECL_STATIC_STR Can't reset time when stepper active -DECL_COMMAND_FLAGS command_set_next_step_dir 0 set_next_step_dir oid=%c dir=%c -DECL_COMMAND_FLAGS command_queue_step 0 queue_step oid=%c interval=%u count=%hu add=%hi -_DECL_STATIC_STR Invalid count parameter -DECL_COMMAND_FLAGS command_config_stepper 0 config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u -_DECL_STATIC_STR Stepper too far in past -DECL_COMMAND_FLAGS command_endstop_query_state 0 endstop_query_state oid=%c -_DECL_ENCODER endstop_state oid=%c homing=%c next_clock=%u pin_value=%c -DECL_COMMAND_FLAGS command_endstop_home 0 endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c trsync_oid=%c trigger_reason=%c -DECL_COMMAND_FLAGS command_config_endstop 0 config_endstop oid=%c pin=%c pull_up=%c -_DECL_CALLLIST ctr_run_shutdownfuncs trsync_shutdown -_DECL_CALLLIST ctr_run_taskfuncs trsync_task -DECL_COMMAND_FLAGS command_trsync_trigger 0 trsync_trigger oid=%c reason=%c -_DECL_ENCODER trsync_state oid=%c can_trigger=%c trigger_reason=%c clock=%u -DECL_COMMAND_FLAGS command_trsync_set_timeout 0 trsync_set_timeout oid=%c clock=%u -DECL_COMMAND_FLAGS command_trsync_start 0 trsync_start oid=%c report_clock=%u report_ticks=%u expire_reason=%c -_DECL_STATIC_STR Can't add signal that is already active -DECL_COMMAND_FLAGS command_config_trsync 0 config_trsync oid=%c -_DECL_CALLLIST ctr_run_shutdownfuncs analog_in_shutdown -_DECL_CALLLIST ctr_run_taskfuncs analog_in_task -_DECL_ENCODER analog_in_state oid=%c next_clock=%u value=%hu -DECL_COMMAND_FLAGS command_query_analog_in 0 query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu range_check_count=%c -DECL_COMMAND_FLAGS command_config_analog_in 0 config_analog_in oid=%c pin=%u -_DECL_STATIC_STR ADC out of range -_DECL_CALLLIST ctr_run_shutdownfuncs spidev_shutdown -DECL_COMMAND_FLAGS command_config_spi_shutdown 0 config_spi_shutdown oid=%c spi_oid=%c shutdown_msg=%*s -DECL_COMMAND_FLAGS command_spi_send 0 spi_send oid=%c data=%*s -DECL_COMMAND_FLAGS command_spi_transfer 0 spi_transfer oid=%c data=%*s -_DECL_ENCODER spi_transfer_response oid=%c response=%*s -_DECL_STATIC_STR Invalid spi config -DECL_COMMAND_FLAGS command_spi_set_bus 0 spi_set_bus oid=%c spi_bus=%u mode=%u rate=%u -_DECL_STATIC_STR Invalid spi config -DECL_COMMAND_FLAGS command_config_spi_without_cs 0 config_spi_without_cs oid=%c -DECL_COMMAND_FLAGS command_config_spi 0 config_spi oid=%c pin=%u cs_active_high=%c -_DECL_CALLLIST ctr_run_taskfuncs thermocouple_task -_DECL_STATIC_STR Thermocouple reader fault -_DECL_STATIC_STR Thermocouple reader fault -_DECL_STATIC_STR Thermocouple reader fault -_DECL_STATIC_STR Thermocouple ADC out of range -_DECL_ENCODER thermocouple_result oid=%c next_clock=%u value=%u fault=%c -DECL_COMMAND_FLAGS command_query_thermocouple 0 query_thermocouple oid=%c clock=%u rest_ticks=%u min_value=%u max_value=%u -DECL_COMMAND_FLAGS command_config_thermocouple 0 config_thermocouple oid=%c spi_oid=%c thermocouple_type=%c -_DECL_STATIC_STR Invalid thermocouple chip type -DECL_ENUMERATION thermocouple_type MAX6675 +0x00000003 -DECL_ENUMERATION thermocouple_type MAX31865 +0x00000002 -DECL_ENUMERATION thermocouple_type MAX31856 +0x00000001 -DECL_ENUMERATION thermocouple_type MAX31855 +0x00000000 -DECL_COMMAND_FLAGS command_i2c_modify_bits 0 i2c_modify_bits oid=%c reg=%*s clear_set_bits=%*s -_DECL_STATIC_STR i2c_modify_bits: Odd number of bits! -DECL_COMMAND_FLAGS command_i2c_read 0 i2c_read oid=%c reg=%*s read_len=%u -_DECL_ENCODER i2c_read_response oid=%c response=%*s -DECL_COMMAND_FLAGS command_i2c_write 0 i2c_write oid=%c data=%*s -DECL_COMMAND_FLAGS command_config_i2c 0 config_i2c oid=%c i2c_bus=%u rate=%u address=%u -DECL_COMMAND_FLAGS command_set_pwm_out 0 set_pwm_out pin=%u cycle_ticks=%u value=%hu -_DECL_CALLLIST ctr_run_shutdownfuncs pwm_shutdown -DECL_COMMAND_FLAGS command_queue_pwm_out 0 queue_pwm_out oid=%c clock=%u value=%hu -_DECL_STATIC_STR Scheduled pwm event will exceed max_duration -DECL_COMMAND_FLAGS command_config_pwm_out 0 config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u -_DECL_STATIC_STR Scheduled pwm event will exceed max_duration -_DECL_STATIC_STR Missed scheduling of next hard pwm event -DECL_COMMAND_FLAGS command_spi_set_software_bus 0 spi_set_software_bus oid=%c miso_pin=%u mosi_pin=%u sclk_pin=%u mode=%u rate=%u -_DECL_STATIC_STR Invalid spi config -_DECL_CALLLIST ctr_run_taskfuncs adxl345_task -DECL_COMMAND_FLAGS command_query_adxl345_status 0 query_adxl345_status oid=%c -DECL_COMMAND_FLAGS command_query_adxl345 0 query_adxl345 oid=%c clock=%u rest_ticks=%u -_DECL_ENCODER adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%c limit_count=%hu -_DECL_ENCODER adxl345_data oid=%c sequence=%hu data=%*s -DECL_COMMAND_FLAGS command_config_adxl345 0 config_adxl345 oid=%c spi_oid=%c -_DECL_CALLLIST ctr_run_taskfuncs spi_angle_task -DECL_COMMAND_FLAGS command_spi_angle_transfer 0 spi_angle_transfer oid=%c data=%*s -_DECL_ENCODER spi_angle_transfer_response oid=%c clock=%u response=%*s -DECL_COMMAND_FLAGS command_query_spi_angle 0 query_spi_angle oid=%c clock=%u rest_ticks=%u time_shift=%c -_DECL_ENCODER spi_angle_end oid=%c sequence=%hu -_DECL_ENCODER spi_angle_data oid=%c sequence=%hu data=%*s -DECL_COMMAND_FLAGS command_config_spi_angle 0 config_spi_angle oid=%c spi_oid=%c spi_angle_type=%c -_DECL_STATIC_STR angle sensor requires cs pin -_DECL_STATIC_STR Invalid spi_angle chip type -DECL_ENUMERATION spi_angle_type tle5012b +0x00000002 -DECL_ENUMERATION spi_angle_type as5047d +0x00000001 -DECL_ENUMERATION spi_angle_type a1333 +0x00000000 -_DECL_CALLLIST ctr_run_taskfuncs mpu9250_task -DECL_COMMAND_FLAGS command_query_mpu9250_status 0 query_mpu9250_status oid=%c -DECL_COMMAND_FLAGS command_query_mpu9250 0 query_mpu9250 oid=%c clock=%u rest_ticks=%u -_DECL_ENCODER mpu9250_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%u limit_count=%hu -_DECL_ENCODER mpu9250_data oid=%c sequence=%hu data=%*s -DECL_COMMAND_FLAGS command_config_mpu9250 0 config_mpu9250 oid=%c i2c_oid=%c -_DECL_CALLLIST ctr_run_shutdownfuncs st7920_shutdown -DECL_COMMAND_FLAGS command_st7920_send_data 0 st7920_send_data oid=%c data=%*s -DECL_COMMAND_FLAGS command_st7920_send_cmds 0 st7920_send_cmds oid=%c cmds=%*s -DECL_COMMAND_FLAGS command_config_st7920 0 config_st7920 oid=%c cs_pin=%u sclk_pin=%u sid_pin=%u sync_delay_ticks=%u cmd_delay_ticks=%u -_DECL_CALLLIST ctr_run_shutdownfuncs hd44780_shutdown -DECL_COMMAND_FLAGS command_hd44780_send_data 0 hd44780_send_data oid=%c data=%*s -DECL_COMMAND_FLAGS command_hd44780_send_cmds 0 hd44780_send_cmds oid=%c cmds=%*s -DECL_COMMAND_FLAGS command_config_hd44780 0 config_hd44780 oid=%c rs_pin=%u e_pin=%u d4_pin=%u d5_pin=%u d6_pin=%u d7_pin=%u delay_ticks=%u -_DECL_CALLLIST ctr_run_taskfuncs buttons_task -_DECL_ENCODER buttons_state oid=%c ack_count=%c state=%*s -DECL_COMMAND_FLAGS command_buttons_ack 0 buttons_ack oid=%c count=%c -DECL_COMMAND_FLAGS command_buttons_query 0 buttons_query oid=%c clock=%u rest_ticks=%u retransmit_count=%c invert=%c -_DECL_STATIC_STR Invalid buttons retransmit count -DECL_COMMAND_FLAGS command_buttons_add 0 buttons_add oid=%c pos=%c pin=%u pull_up=%c -_DECL_STATIC_STR Set button past maximum button count -DECL_COMMAND_FLAGS command_config_buttons 0 config_buttons oid=%c button_count=%c -_DECL_STATIC_STR Max of 8 buttons -_DECL_CALLLIST ctr_run_shutdownfuncs tmcuart_shutdown -_DECL_CALLLIST ctr_run_taskfuncs tmcuart_task -_DECL_ENCODER tmcuart_response oid=%c read=%*s -DECL_COMMAND_FLAGS command_tmcuart_send 0 tmcuart_send oid=%c write=%*s read=%c -_DECL_STATIC_STR tmcuart data too large -DECL_COMMAND_FLAGS command_config_tmcuart 0 config_tmcuart oid=%c rx_pin=%u pull_up=%c tx_pin=%u bit_time=%u -DECL_COMMAND_FLAGS command_neopixel_send 0 neopixel_send oid=%c -_DECL_ENCODER neopixel_result oid=%c success=%c -DECL_COMMAND_FLAGS command_neopixel_update 0 neopixel_update oid=%c pos=%hu data=%*s -_DECL_STATIC_STR Invalid neopixel update command -DECL_COMMAND_FLAGS command_config_neopixel 0 config_neopixel oid=%c pin=%u data_size=%hu bit_max_ticks=%u reset_min_ticks=%u -_DECL_STATIC_STR Invalid neopixel data_size -_DECL_CALLLIST ctr_run_taskfuncs counter_task -_DECL_ENCODER counter_state oid=%c next_clock=%u count=%u count_clock=%u -DECL_COMMAND_FLAGS command_query_counter 0 query_counter oid=%c clock=%u poll_ticks=%u sample_ticks=%u -DECL_COMMAND_FLAGS command_config_counter 0 config_counter oid=%c pin=%u pull_up=%c -DECL_COMMAND_FLAGS command_config_reset 0x01 config_reset -_DECL_STATIC_STR config_reset only available when shutdown -DECL_CONSTANT_STR MCU linux -_DECL_CALLLIST ctr_run_initfuncs timer_init -_DECL_STATIC_STR Rescheduled timer in the past -DECL_CONSTANT CLOCK_FREQ +0x02FAF080 -_DECL_CALLLIST ctr_run_taskfuncs console_task -_DECL_STATIC_STR Force shutdown command -_DECL_CALLLIST ctr_run_taskfuncs watchdog_task -_DECL_CALLLIST ctr_run_shutdownfuncs pca9685_shutdown -DECL_COMMAND_FLAGS command_set_pca9685_out 0 set_pca9685_out bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu -_DECL_STATIC_STR Invalid pca9685 channel or value -DECL_COMMAND_FLAGS command_queue_pca9685_out 0 queue_pca9685_out oid=%c clock=%u value=%hu -_DECL_STATIC_STR Scheduled pca9685 event will exceed max_duration -_DECL_STATIC_STR Invalid pca9685 value -DECL_COMMAND_FLAGS command_config_pca9685 0 config_pca9685 oid=%c bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu default_value=%hu max_duration=%u -_DECL_STATIC_STR Invalid pca9685 channel or value -_DECL_STATIC_STR Scheduled pca9685 event will exceed max_duration -_DECL_STATIC_STR Missed scheduling of next pca9685 event -DECL_CONSTANT PCA9685_MAX +0x00001000 -_DECL_STATIC_STR Unable to open and init PCA9685 device -_DECL_STATIC_STR Too many i2c devices -_DECL_STATIC_STR All PCA9685 channels must have the same cycle_ticks -_DECL_STATIC_STR Unable to update PCA9685 value -_DECL_STATIC_STR Unable to write to spi -_DECL_STATIC_STR Unable to issue spi ioctl -_DECL_STATIC_STR Unable to set SPI mode -_DECL_STATIC_STR Unable to set SPI speed -_DECL_STATIC_STR Unable to set non-blocking on spi device -_DECL_STATIC_STR Unable to open spi device -_DECL_STATIC_STR Too many spi devices -DECL_ENUMERATION_RANGE spi_bus spidev7.0 +0x00000700 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev6.0 +0x00000600 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev5.0 +0x00000500 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev4.0 +0x00000400 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev3.0 +0x00000300 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev2.0 +0x00000200 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev1.0 +0x00000100 +0x00000010 -DECL_ENUMERATION_RANGE spi_bus spidev0.0 +0x00000000 +0x00000010 -_DECL_STATIC_STR Error on analog read -_DECL_STATIC_STR Unable to open adc device -DECL_ENUMERATION_RANGE pin analog0 +0x00001000 +0x00000008 -DECL_CONSTANT ADC_MAX +0x00000FFF -_DECL_STATIC_STR Unable to config pwm device -DECL_ENUMERATION_RANGE pin pwmchip7/pwm0 +0x00010070 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip6/pwm0 +0x00010060 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip5/pwm0 +0x00010050 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip4/pwm0 +0x00010040 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip3/pwm0 +0x00010030 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip2/pwm0 +0x00010020 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip1/pwm0 +0x00010010 +0x00000010 -DECL_ENUMERATION_RANGE pin pwmchip0/pwm0 +0x00010000 +0x00000010 -DECL_CONSTANT PWM_MAX +0x00008000 -_DECL_STATIC_STR Unable to read i2c device -_DECL_STATIC_STR Unable write i2c device -_DECL_STATIC_STR Unable to open i2c device -DECL_ENUMERATION_RANGE i2c_bus i2c.0 +0x00000000 +0x00000007 -_DECL_STATIC_STR Unable to open in GPIO chip line -_DECL_STATIC_STR Unable to open out GPIO chip line -_DECL_STATIC_STR Unable to open GPIO chip device -_DECL_STATIC_STR GPIO chip device not found -DECL_ENUMERATION_RANGE pin gpiochip7/gpio0 +0x00000700 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip6/gpio0 +0x00000600 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip5/gpio0 +0x00000500 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip4/gpio0 +0x00000400 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip3/gpio0 +0x00000300 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip2/gpio0 +0x00000200 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip1/gpio0 +0x00000100 +0x00000100 -DECL_ENUMERATION_RANGE pin gpiochip0/gpio0 +0x00000000 +0x00000100 -DECL_ENUMERATION_RANGE pin gpio0 +0x00000000 +0x00000100 -_DECL_CALLLIST ctr_run_taskfuncs ds18_task -_DECL_STATIC_STR DS18B20 sensor didn't respond in time -_DECL_STATIC_STR DS18B20 out of range -_DECL_ENCODER ds18b20_result oid=%c next_clock=%u value=%i fault=%u -_DECL_ENCODER ds18b20_result oid=%c next_clock=%u value=%i fault=%u -_DECL_STATIC_STR Error reading DS18B20 sensor -_DECL_STATIC_STR Error getting monotonic clock time -DECL_COMMAND_FLAGS command_query_ds18b20 0 query_ds18b20 oid=%c clock=%u rest_ticks=%u min_value=%i max_value=%i -DECL_COMMAND_FLAGS command_config_ds18b20 0 config_ds18b20 oid=%c serial=%*s max_error_count=%c -_DECL_STATIC_STR Could not start DS18B20 reader thread -_DECL_STATIC_STR Could not start DS18B20 reader thread (cond init) -_DECL_STATIC_STR Could not start DS18B20 reader thread (mutex init) -_DECL_STATIC_STR Invalid DS18B20 serial id, could not open for reading -_DECL_STATIC_STR Invalid DS18B20 serial id, must not contain '/' diff --git a/out/klipper.dict b/out/klipper.dict deleted file mode 100644 index a07e3af..0000000 --- a/out/klipper.dict +++ /dev/null @@ -1 +0,0 @@ -{"build_versions":"gcc: (Debian 8.3.0-6) 8.3.0 binutils: (GNU Binutils for Debian) 2.31.1","commands":{"allocate_oids count=%c":8,"buttons_ack oid=%c count=%c":64,"buttons_add oid=%c pos=%c pin=%u pull_up=%c":66,"buttons_query oid=%c clock=%u rest_ticks=%u retransmit_count=%c invert=%c":65,"clear_shutdown":2,"config_adxl345 oid=%c spi_oid=%c":51,"config_analog_in oid=%c pin=%u":32,"config_buttons oid=%c button_count=%c":67,"config_counter oid=%c pin=%u pull_up=%c":74,"config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u":17,"config_ds18b20 oid=%c serial=%*s max_error_count=%c":80,"config_endstop oid=%c pin=%c pull_up=%c":26,"config_hd44780 oid=%c rs_pin=%u e_pin=%u d4_pin=%u d5_pin=%u d6_pin=%u d7_pin=%u delay_ticks=%u":63,"config_i2c oid=%c i2c_bus=%u rate=%u address=%u":44,"config_mpu9250 oid=%c i2c_oid=%c":57,"config_neopixel oid=%c pin=%u data_size=%hu bit_max_ticks=%u reset_min_ticks=%u":72,"config_pca9685 oid=%c bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu default_value=%hu max_duration=%u":78,"config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u":47,"config_reset":75,"config_spi oid=%c pin=%u cs_active_high=%c":38,"config_spi_angle oid=%c spi_oid=%c spi_angle_type=%c":54,"config_spi_shutdown oid=%c spi_oid=%c shutdown_msg=%*s":33,"config_spi_without_cs oid=%c":37,"config_st7920 oid=%c cs_pin=%u sclk_pin=%u sid_pin=%u sync_delay_ticks=%u cmd_delay_ticks=%u":60,"config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u":23,"config_thermocouple oid=%c spi_oid=%c thermocouple_type=%c":40,"config_tmcuart oid=%c rx_pin=%u pull_up=%c tx_pin=%u bit_time=%u":69,"config_trsync oid=%c":30,"debug_nop":9,"debug_ping data=%*s":10,"debug_read order=%c addr=%u":12,"debug_write order=%c addr=%u val=%u":11,"emergency_stop":3,"endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c trsync_oid=%c trigger_reason=%c":25,"endstop_query_state oid=%c":24,"finalize_config crc=%u":6,"get_clock":5,"get_config":7,"get_uptime":4,"hd44780_send_cmds oid=%c cmds=%*s":62,"hd44780_send_data oid=%c data=%*s":61,"i2c_modify_bits oid=%c reg=%*s clear_set_bits=%*s":41,"i2c_read oid=%c reg=%*s read_len=%u":42,"i2c_write oid=%c data=%*s":43,"identify offset=%u count=%c":1,"neopixel_send oid=%c":70,"neopixel_update oid=%c pos=%hu data=%*s":71,"query_adxl345 oid=%c clock=%u rest_ticks=%u":50,"query_adxl345_status oid=%c":49,"query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu range_check_count=%c":31,"query_counter oid=%c clock=%u poll_ticks=%u sample_ticks=%u":73,"query_ds18b20 oid=%c clock=%u rest_ticks=%u min_value=%i max_value=%i":79,"query_mpu9250 oid=%c clock=%u rest_ticks=%u":56,"query_mpu9250_status oid=%c":55,"query_spi_angle oid=%c clock=%u rest_ticks=%u time_shift=%c":53,"query_thermocouple oid=%c clock=%u rest_ticks=%u min_value=%u max_value=%u":39,"queue_digital_out oid=%c clock=%u on_ticks=%u":15,"queue_pca9685_out oid=%c clock=%u value=%hu":77,"queue_pwm_out oid=%c clock=%u value=%hu":46,"queue_step oid=%c interval=%u count=%hu add=%hi":22,"reset_step_clock oid=%c clock=%u":20,"set_digital_out pin=%u value=%c":13,"set_digital_out_pwm_cycle oid=%c cycle_ticks=%u":16,"set_next_step_dir oid=%c dir=%c":21,"set_pca9685_out bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu":76,"set_pwm_out pin=%u cycle_ticks=%u value=%hu":45,"spi_angle_transfer oid=%c data=%*s":52,"spi_send oid=%c data=%*s":34,"spi_set_bus oid=%c spi_bus=%u mode=%u rate=%u":36,"spi_set_software_bus oid=%c miso_pin=%u mosi_pin=%u sclk_pin=%u mode=%u rate=%u":48,"spi_transfer oid=%c data=%*s":35,"st7920_send_cmds oid=%c cmds=%*s":59,"st7920_send_data oid=%c data=%*s":58,"stepper_get_position oid=%c":19,"stepper_stop_on_trigger oid=%c trsync_oid=%c":18,"tmcuart_send oid=%c write=%*s read=%c":68,"trsync_set_timeout oid=%c clock=%u":28,"trsync_start oid=%c report_clock=%u report_ticks=%u expire_reason=%c":29,"trsync_trigger oid=%c reason=%c":27,"update_digital_out oid=%c value=%c":14},"config":{"ADC_MAX":4095,"CLOCK_FREQ":50000000,"MCU":"linux","PCA9685_MAX":4096,"PWM_MAX":32768,"STATS_SUMSQ_BASE":256},"enumerations":{"i2c_bus":{"i2c.0":[0,7]},"pin":{"analog0":[4096,8],"gpio0":[0,256],"gpiochip0/gpio0":[0,256],"gpiochip1/gpio0":[256,256],"gpiochip2/gpio0":[512,256],"gpiochip3/gpio0":[768,256],"gpiochip4/gpio0":[1024,256],"gpiochip5/gpio0":[1280,256],"gpiochip6/gpio0":[1536,256],"gpiochip7/gpio0":[1792,256],"pwmchip0/pwm0":[65536,16],"pwmchip1/pwm0":[65552,16],"pwmchip2/pwm0":[65568,16],"pwmchip3/pwm0":[65584,16],"pwmchip4/pwm0":[65600,16],"pwmchip5/pwm0":[65616,16],"pwmchip6/pwm0":[65632,16],"pwmchip7/pwm0":[65648,16]},"spi_angle_type":{"a1333":0,"as5047d":1,"tle5012b":2},"spi_bus":{"spidev0.0":[0,16],"spidev1.0":[256,16],"spidev2.0":[512,16],"spidev3.0":[768,16],"spidev4.0":[1024,16],"spidev5.0":[1280,16],"spidev6.0":[1536,16],"spidev7.0":[1792,16]},"static_string_id":{"ADC out of range":26,"All PCA9685 channels must have the same cycle_ticks":50,"Already finalized":13,"Can not set soft pwm cycle ticks while updates pending":20,"Can't add signal that is already active":25,"Can't assign oid":11,"Can't reset time when stepper active":22,"Command parser error":7,"Command request":8,"Could not start DS18B20 reader thread":73,"Could not start DS18B20 reader thread (cond init)":74,"Could not start DS18B20 reader thread (mutex init)":75,"DS18B20 out of range":70,"DS18B20 sensor didn't respond in time":69,"Error getting monotonic clock time":72,"Error on analog read":59,"Error reading DS18B20 sensor":71,"Force shutdown command":43,"GPIO chip device not found":68,"Invalid DS18B20 serial id, could not open for reading":76,"Invalid DS18B20 serial id, must not contain '/'":77,"Invalid buttons retransmit count":36,"Invalid command":5,"Invalid count parameter":23,"Invalid move request size":14,"Invalid neopixel data_size":41,"Invalid neopixel update command":40,"Invalid oid type":12,"Invalid pca9685 channel or value":44,"Invalid pca9685 value":46,"Invalid spi config":27,"Invalid spi_angle chip type":35,"Invalid thermocouple chip type":30,"Max of 8 buttons":38,"Message encode error":6,"Missed scheduling of next digital out event":21,"Missed scheduling of next hard pwm event":33,"Missed scheduling of next pca9685 event":47,"Move queue overflow":15,"Rescheduled timer in the past":42,"Scheduled digital out event will exceed max_duration":19,"Scheduled pca9685 event will exceed max_duration":45,"Scheduled pwm event will exceed max_duration":32,"Set button past maximum button count":37,"Shutdown cleared when not shutdown":2,"Stepper too far in past":24,"Thermocouple ADC out of range":29,"Thermocouple reader fault":28,"Timer too close":3,"Too many i2c devices":49,"Too many spi devices":58,"Unable to config pwm device":61,"Unable to issue spi ioctl":53,"Unable to open GPIO chip device":67,"Unable to open adc device":60,"Unable to open and init PCA9685 device":48,"Unable to open i2c device":64,"Unable to open in GPIO chip line":65,"Unable to open out GPIO chip line":66,"Unable to open spi device":57,"Unable to read i2c device":62,"Unable to set SPI mode":54,"Unable to set SPI speed":55,"Unable to set non-blocking on spi device":56,"Unable to update PCA9685 value":51,"Unable to write to spi":52,"Unable write i2c device":63,"alloc_chunk failed":17,"alloc_chunks failed":16,"angle sensor requires cs pin":34,"config_reset only available when shutdown":9,"i2c_modify_bits: Odd number of bits!":31,"oids already allocated":10,"sentinel timer called":4,"tmcuart data too large":39,"update_digital_out not valid with active queue":18},"thermocouple_type":{"MAX31855":0,"MAX31856":1,"MAX31865":2,"MAX6675":3}},"responses":{"adxl345_data oid=%c sequence=%hu data=%*s":-30,"adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%c limit_count=%hu":-31,"analog_in_state oid=%c next_clock=%u value=%hu":93,"buttons_state oid=%c ack_count=%c state=%*s":-24,"clock clock=%u":86,"config is_config=%c crc=%u is_shutdown=%c move_count=%hu":87,"counter_state oid=%c next_clock=%u count=%u count_clock=%u":-21,"debug_result val=%u":89,"ds18b20_result oid=%c next_clock=%u value=%i fault=%u":-20,"endstop_state oid=%c homing=%c next_clock=%u pin_value=%c":91,"i2c_read_response oid=%c response=%*s":-32,"identify_response offset=%u data=%.*s":0,"is_shutdown static_string_id=%hu":82,"mpu9250_data oid=%c sequence=%hu data=%*s":-25,"mpu9250_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%u limit_count=%hu":-26,"neopixel_result oid=%c success=%c":-22,"pong data=%*s":88,"shutdown clock=%u static_string_id=%hu":83,"spi_angle_data oid=%c sequence=%hu data=%*s":-27,"spi_angle_end oid=%c sequence=%hu":-28,"spi_angle_transfer_response oid=%c clock=%u response=%*s":-29,"spi_transfer_response oid=%c response=%*s":94,"starting":81,"stats count=%u sum=%u sumsq=%u":84,"stepper_position oid=%c pos=%i":90,"thermocouple_result oid=%c next_clock=%u value=%u fault=%c":95,"tmcuart_response oid=%c read=%*s":-23,"trsync_state oid=%c can_trigger=%c trigger_reason=%c clock=%u":92,"uptime high=%u clock=%u":85},"version":"v0.10.0-530-g3387a9c2"} \ No newline at end of file diff --git a/out/klipper.elf b/out/klipper.elf deleted file mode 100644 index 3729d16ccb45407c6e527faa6a090c3216f87e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712216 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

    {5u}$v4H8=%a!&W9jhibOrwOMqJMic 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%0Dlw7zpb-6J|yb{ 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%0A8{IH9*Z5TGV7 zan^JIe{DApxpG>n6-#KP&khE(6X?XQ8*{dyWJ1xu-vT+YU2iTTggj#N zies(wv=!2Moc1RnWx9{p80*On1-nZmWWKnxFEIxYI53?{@tsfwuuw1?9vJxFH*&+08XeeHyP!S zw!&WB^$&UL)wm})*09DF*ibCem_rta#ICpTtUHQ_i3!^{S4fgzE{0FTm~cD|JIxo$ zwV+y$#tY6Fm1Bw3m7QSoZq?#=9GN$L5N#;}=V(+?N|Rksw%{&`vhB+d$SIT^bJaQs zLn2Rkh!;-&$CL#p8j5x*&bDG6$LnU#No%&4#6eI<6&+yg&rF}VqcIOBt|Oh5YMCQM zIX|OBMm;{7%O%C2kW`V1NJEL#FjI07*w)xF1V}c8jyqVXk$G$L@*Ha7mc)9u6nn5m zjOQTI?ac8C{DgET!>yLBIHh^o!XSa_W|JfFE$z`TUD9VJSq;+ZPzKRC7StZkA!x*S z$RoY-AXlWX0Zv)rw4#_+afX$&WHqkLVz3_?@2cV)Y%wj=O4jIQoH(Pi14ZUz&LVR` zoG+G&*e=Q#V|dYFb~ItQ*hT_nd}F9|NXy8GCvt->Kl}2BDmn4kZUa2`iE4NfnPHLf zg>kM_Oy&^qkr%LAPnVir1KMcgk;@8cMPaP!$vGVzm&JIhHOL4dP06L2=2m3^wkJ~0 ztYvxGq2a+JKN|BNg9X@DNOS9loaDA@<0U^})kdyE$hd=olMKrE{A@755u5Y`4}zmY z$*nR=j~Bu6~`(`_cLSQFW9xK|~0I7%YAN8Svdp8cVSyk z?iJ4!a`kk+oG-_gGjfwDY;im`mZ9Fy-!q3E!&4`R_ z>XZ~8Xbu~6@)o<2Iz}=!0%z%BcPo!*a27V7#1%RmwZ}cQ9-5f34aJiY2say-%5>4QTuJbDIg83&GOI~HdN zu+^@|ouRk7&BHa>qQ<$T5?AJnWg7uW2j+3h%H#ZCVlL(wIgW26AYjgt38C0qt2i>S z5@XkjXNyf3W4z*M2dmUbG+r)CSw*!eyURMrz!S0c;Yvf3^|9a0BKltTwlrNT|BlGhh+ht;bkA@ z=3xAIJt!JK1cr^9cb4?pww)L7e1^|>J(Xi?=!=DYwQY$5aKFClRF`bEj^o}5AVwuC z$?Mm7c+PPXr|(%WTwN(z)!9d`+}w{(v90(49I27&%0cgv$d2=rtBvXHl{f%+p+4ZjjZIZ=qZG!hb)0PMxyi9q}g}m!Lt;Z zDfaC8Nj8?PL*$%Fh!x`W$PzdqN(;lUVPym=U^9sW`bGaCf;?BpdsdcVKrg>|F9GCg z<+&iKV?~4^4*TVOhUOyT4SLPYlnjZ23VBtBGY;i3uO0vC5oPvC;`0&V5U`S{mM_H- zdZ*_O^3Gf4se?Qrz^0;9ELBSNl70IiS18RD=H?vl$qRPn%;DjtjNQENkSotuYSnpX zv74#NB;;e45jf7qu^q>2Ac*avSC@8q!P^FC#C&?4q#ssYH${Hdyz1yLOFBu!o~(nn z1{)$Q6#s(|%9oI$fN6Tzc76TZhpi-{C#pTy4~BC0m<`%F$gT z8Z=Z6FV%scDTjSiLvQe5E1bCrQP)pf5jEheUTdgwdJB@n)*RRLh9~N}`k6;AZSXst zjRbAw&a^NucbXP*t)FtD3oy{)MD1n_5xQWEKRMl-;f!Z_3NNg*+t|B+R6q2!?=ir~BoO-u9Gh=uIwRdvclO)Q(~Z^#Ag~*JTyG@h$I@SNK9os&_x; z?Qo0W>p1Eh{FC;(`9jJ~mQ-KK`}hI}xNzI^*K3rN-q#0|-+nvV|MXYC>Pr7d`9ezh zn$4rQ!*iu$F0VuRSp1Xr$N56a!`$#}(9m~Cq`iFKiN2mexU}EK1X8|5DnLUYUw?lL z>{pKbUwMosQ&R3Xw@Ty}c2e#`{V$#NJ83ZZNO?%#DMj*=?nHiu)h&z*zx%nplt=g_ zf9YS^%lL2Q_Lnikz4(4BeWZMtCyd(TCl1E_OZztfBb|_Z^pW3fl2X10Xll(E;>|J0Zbt6g#N}U z?N1$`sH{}4Bb27}+c&4QU-*t`fA`5pZcqHOGi2x={(!NxrH4(An*smyiPnB4e$et3 j+choC-`@L8ApPqLU38_bt)0^T{4bgI`@I2sx9WcYD3J}K diff --git a/out/src/adccmds.d b/out/src/adccmds.d deleted file mode 100644 index 77fe34d..0000000 --- a/out/src/adccmds.d +++ /dev/null @@ -1,17 +0,0 @@ -out/src/adccmds.o: src/adccmds.c /usr/include/stdc-predef.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/ctr.h \ - src/compiler.h src/sched.h diff --git a/out/src/adccmds.o b/out/src/adccmds.o deleted file mode 100644 index aee6ad146d562135bb36805867e2e003770ab20d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155808 zcmeGFcR&-%_c(wCA%LKW3M$r!3PEWpK%!UzgeJ`p1VoK=qckB1*n2P78y4)n7wo+& z_Kw}FVngiRch1ai5|CRyzxV!oU%b1Mot>SXIdl3svv;UG$hVq-0f+rF;Oye)uGm@* zXNgBO?L{Z@s}pBAXBlbR7_OVZp@AbC4t%~T9L?b94@V9hSjU5-IUKoga7=<@G8|av z4u=OEQ{b2i2i8g8kiwA<$22&wt}Ptx;Fu1_3^=gP6OQ(9%!FeW99Y)@j*f85hGPyK zSl0;-860!rmKC6dy26dyMii=aE6*g8W+TRVW zaQV2K*a}0x2KXBCUL&J=rcdF*Bq@PoRKGgn3CzuO5uC~W2HcLO{xH?*SkLWL6W_pI zSmT8ObEg?zRAVme$Ux|Y%nJKAr59c`dO~NG9PTTqGmC=X=6HfP;^<6GgW;kEzAqh) znjCHd6c%uY!;NZ*RrGgsJse*RJk6o)CTZ_=tA|yzT}=JG(1gyzxRz-t+#tg+wygUG zelr)ftqg(C=m3rDSl~clfZL&gsVSao9fBHcVon}1HT?jUmL^8H2*%dNE#XdW_{p3N z==%(e8<=*4JM?`v6mImE#H6NaDSOMrq7J@;wlk?k-rj&bWKzophtin2u)_-;y|A=c z1{W=v3v0ZvV=j1j!8gfJr*TYbTc3jqM|!6Y8GPe~ zsb_<;tASL=1-z<@+KqSO@EZpry@X4Q^nwbaev9BvIQii8QQ7XOUiK z89YRPXVgJBGB>iSqyG%}s$K%}(|T3OUJH?(MEVOf8k7fh*IOOCmD2dDwmuE#O7 zXlvfiTxuRr7g!B*2bdJsj)OJEbqx$H%*|;N1E?^m$uTr#pOBctD{Db-*t9y_(e{OR z%&ZOUZSWa$F6pa=fk8lBysinu;#i3Fns>DEv;k_v2WS&ZBZCg+*st!*wfXQsW9YYz z{*y4#=Fqzf)LS_lbhKfIK;LW)O|_#1Xqf|a>T~s8%;7X}h8fbgurIeUH^5;w#PPyN zjW~dDFmpT^a!d@HQ3h{hXi}X^?id=Gk()+_Tyw+fhO}YB8pbG*Ifl(^(u&oF7WBs+ z!&*%9y@r-lN*HmA2sRoXGOTULWpA6-q3w*AMuv?HxCEID8!=62hm#EI(uT&@VSX@R z!^T$38=A0v*;;c6+8Pb}HO}I75BV1G|;7L;>IwvE;>h;)PW?Xij^_gzDW-$8( zOs$y>t<^spnj6zgBb1p$rv2af{~+*x5cod`{2v7V4+8%Of&agT05QudK!Dc#S^uZz z@OLfs>;L>s`}wo}|N9#Kp8p)}f2koF5-OUgbmQ5XoY8lI$|r|wPp;7b<8aaA!r_i5 zdLDNIEhf?e4Pm%9nHE!MF_jkiw3tQ;<3f71mlpeIv7Z(PXmOAhhiGw_7Ds4tlorQm zahw(>XmOGjr)Y7S7H4R2nH0vvl;&_J65W|Qi58P-F@+XWX^~HhX|$M5iy5?-NsC#u zm`#g0w3thad89C2NsBwQm_`(B?rc&R7tpIhTC5}mfjKe#xL}mPAFcseALAUnG$x)B z<2>>kJ!u?c^rdl((Syb@Mjsl-cnCS8^MzwPjLv&FEk@8{BrQhKVl*wr&|)kt#?gW< zwlQ67W4hSJbg_-;VjDAyJ%c>JT||rZwAf60DWO+)Y4MmAXf49z%4ji)LTC&rxMS(n zIC?dn7VBxTnHJk=QACSA@#LI9&T4Y*L(Zw> zj2>1F7yYUnE?H$RS!FI+SuR~tE?rV?MOxcPfx3ehyJ)e877XQGq*pg-@rV}8n!KY| z?`iR!7NaSQ7)mIhS1V|-ffhSSVNAi#Wx#)m-n&f;N(tO2^y&pIUebaA|8xrC8MI(l zVFS4$0JkOpX^dxbeTg=_Op7bDxJrv_w4nYL?oE32m=;fH@re|qCo|GBnDYQ|;$o!+ zDwn$TYLR+NaweWPE^&uY@}zbxmyWF-X+z1F7|oQJxeZBuBXTC=r4)VSz&=Wsiab4PL}5ajxk-<`?13!cer ziNAtNXGO+JYNJT2KIGh&oHgXEPpE`Va|wgy5(Zrb=~lT849F?}WgyQA+kcX>RIYNT zQz~WH@JxC&mlpGBv49p!Xt9(Q%W1KK7Hes-ffk!+LAf}W;U*Q?2qVB5LCi>CM&@3k zk5kdhy+^O^(}EEK4EKLaE78LZi}aBeUuf}_7T;*`gBBwgjzJ45Jh+VTs36YCy6NGo zFVD#Vv|elp#~>TW!)WeLI)b5|F=N>6`s z1i}j#%%k+APf1h}BQ!)tKpbd)%ZG?xjkKd9qOIvzD2CIq&{0s1)SQf+zLU}_6=eUv zqRd{Te=72N<8M7k>O+t6U&0kQasadu2c7Q*1_qzr)x-kv01kt!%y^DVc2=f~IxRjW zJ0Y>cg-dK~W_)jVu~UjVEj!mKIW5~IPOZuMw>Hr3-i7?dTeHbQ*vTjVx~HtUU9Vb5K+y`NX&BXjbXGbO#%enoU-ARre6cU0RqVx>U8)8 zpo&jVO^r=UfD3>_R($V7=4Wg|e0*v`mUBF**CfO{Wn?BMBqq`4<6^TC;WqP>CV}1n zTZFzA>ftv`D&DDgVr)WUrc;(CHd6!DFtVh?SWR{&87GY7PuK!bT;icaoCq|?NzY8k zQV&R^52vK3B|9agXUC;56IBW@WkNk8>$#56bYXS{;l7UE0eDByy+6x059cG2e1H)GSn%F%oQgfL@5%gf@M)WzEB|c5KBbvVh;ySY+7te zda_ELrpoG_tw~7FN#m$gzF{g~S-4W=8!Yp67xM&A6|VGADWk*WJRBd)6I%r-1wx4` zI3PqNa8=2p!c;0A-$^VL2^`>V1brbs1NGTyS?c7p!~`D3R8=ZJZ*P@M85$hmt%~&a zmnl?ARZysRXO*u)F6Rk#Ps4EGVb|Ow<}U(nk@gWG;Q@Xjav!*hqwBBEQUh>#DpjmT zlc|o&)+DM_e12lCCNUExn3Bh~aA1d~3X;PN-Nj^5&oQkE;wT;p~ck z0=bja&BqsB5)m#}MTLgRLxi0rQQ-mFxmARjzyof?rsTxtWdWuEL&BBP{?J=89-m*S zp-M%Tj6oLf(2#H#D;Xh0oT@M+$j2*4rI7msC z!;UtJU0M;;B&8(g#%5;nVtVLq%frG0f4C$KO6IG0cKf%+-b?`q&)Jd1JqTj#cpXeb_g@@3yDw#1$ZfB3cxYAMzSQt z4FjtTJ1vzV`XCIkftIvIt`ew5w2>*i{Z#?sGL?*B4lr8eEd)h$xWT>&P>y|*2m1=9 zBzPJGlngDxJM(iLQ)9FGIsg{%a~<07$%TX65atKV^;PPG#54^6L4_O^#uTdXkt=?8S-U(JP6q;bgjoCq@47mq^v|udJ-SmpJT8**h{W(;Hgw`+3FMx@LKjh zk2c^jEucT(v)-x*rLPLshY~8`2@D&pic8^&N?0UQ0Y^ccW7=o+PS4a3o=dag#^R( z8E#rSC28nazZ!%B5Vh_mp=T5T{<5xeRd{rWw+g5tOa^QUDI+{m7N!!gJV+0!z<3$( z_=koowXB~NOh{}5vFRG~;GIwd7v6lSP$&|42wg?)5;w7jhnvLJgA5{!j~v;7hiB{? znXeK?55MWMG8pYF@Ng4L#Ug-&P$-mmxVd^r-6b9(cQ@!2{={zX5}da$U}%22vBrU`SUnhR-uC^RuPa2Bx13r;Oh$$VIT?k_=l{+o}ixLjbu>xnu@xF2o?$kjAX9T@Nk8Rx&c}S z$V9xO2nq;>_XNw7-v07%a)}Tm;E4c^?FY0;pjlb}0G8;j3RB1x@-Dz#`Z%Vl(~#`| zza)25JWo%az}?1}>teMy;5Tw7&>uvgKLD%=H6dTe_EpeO5I&9yKtOn?w-kA4GAhri)Y$mU zbX87lW*W#U0Y5b{D=RiR5s)-2Gd4Lj7G}d%ar(!CNCO?4-`_DspFdWp$FTrTA#%XV zS2YkPqHzLV<4h3MxsDtJV#%amGRR|ridN4mV zE7^fZj0>%9%qVu@N|_SWrErkc*a+dEuTIJ2;mkY3Lc;^1;5QYJdTIo~8T6-+h#-`J zWF(XWYo#r6Shy8Vv|UyslyHLO;o&krxe7W~h0D7DqBCj`z(&RB(f}uT6733AQhe{E zlvvO@p+bgY8;LhK)JGnq3J0w&2+$0{0{}+8#0U){WT>9*8xBzOCN!^QOA!^=62P2N zcLjL~TF2jz7v88yU0Cy9h)b(#!hp4`3HSlgjL}5EdOdZNlNpE3Yj+&n?b7xXn6`z1;~&{gFi@&vBUu$tZ72`dQq3hMk%1P5l5MwOw-Oi(8!sWhtIh?_bC3Yo4dJ1sj41U@(`vQrSz z^czrRtg2?n#TbN#l@9`S%m@1hiwl+)H1j+MUM|?MygWUZfd;g7Xrs^je8T|!yMmAd zVJTAtDE))wz$&4U7J|rhwKQAN9*AJL;UD1lWx%3C-9LmYQJe$h-YT%hVA8~ALGc9j z0I0!b)Ill(oHc?b%s&=6Qi z0v@1MAGt5+b^;>bwcLsbRuLeh2c21101k{%W?{W5V6@m-Dt2{ua~FfTD-Z(uip6Lp zfI=)4O56db1)vp!IxIvR80HJuq+Rkq92jzuMC{`OtytaYzd-Wu^&_52#e!MKqd=nr z@03zVxEhf6A6h0+GVw-5{ww9^vmNwFN{Id(0T^CUsnnTSg#W=JR)CnmS?nqhN+n`< zP{YI$fd?2-QXxPISb#_x;jF4sh^T-@wK+)M6|@0x?LcdyGh`hNg>_0fJW!L>dBtFkEVZP;N_>0xfiyDqRW`ghU6Hl69aG zL{Hgs7D$D#;K1?0a+H9vMVx3APl-+*TJw>xKiwRVafJmdD;le;bOzQyh?~8c04}bYY+ESY2b9_+hKDa+ti^Q@p>ZmcGlzIFhnFH z7!~DmRg4KG5g0Mvps^~bAC*5)&r5~`tGy4dF!Z#xm=>Q7j(qZH zJKkVcQ4jMD2Xz?EjQ^^lFwwbzwHlgM?UqFcg@RE|K+9I*g%h}NsAdkJ#n&L2zyzs% zi*hqUCpY0X+(oXgyN!}h%j_A=1JoulGHO6nDuMJ^G$TdA{X-S#vJi4)3WY41ATU1` zOj*QO@IS#%7asdN#{O5PQH$a1BBsE^89iUJz=jW-x|;r;=>N`6;I zbYkGOzdQ=Of5>bBdKw3QR|j5)4m|L2IPmO%(YPida8Z9rNQ_URBA3`{)YVV9Ch_p{ zk%8jKbTS_z0`yt1OJM}mcEkRBWIjF^gCJZTB(x4QfnHc`7MzOCB6p#{6})32fdD8P z9766w_~!vc4Q^l1@`UcLsLO$KjH-<~Ayi3GChRs$A@d8Cq3Dw%zd<2I%zb3Td_P}{Uh%TK2QAlD=+0PCcx+GR#{gMabdQP&h;SXFvHs`rdj zR-;Zu*R2jfsJgkMD_!LUzAgX-fC#(MDk;d#2m#=VG3bvCR6Nu&!coi9I$Nl6j;~{= zil`TaT@ajcK+X;h5JBS2g{1Z(qz&k)06itLfcA7dDe;^nm72xUwae}iTMkb;?5Ic@q&ys~J z3MN=2;({U;36a$)@x4>i6L2!fZz>tXDEt2(q!0&}2IZultk4Q0U3`y$2ouF&$nPJb zI_P$0{lf$+t6F*th=k+fGY|kZ1%9EY3zdorb{Zp+iHt^I5oimfQjsf_!uXJG_Iy4K zzd8t=g+f>GUAjW3#tldrGz3?P*hAw<~`fh&(M5Q3tJ zb&PFFgaE0eLBD^E2UZYd`T;>A#=OBF6BH1x${I0@ddFfYk)%CPl>?k{$n7iFLl_wE zfHeoseY#>*xUM6JFO!f|a-s$V3X&8NNBBeEz6}o+{ZWJb2Vv!oi=-E^K$j?@W<*Fp zloYi%9YQhQ4}AkerRpqKgrH|m39(r8UV=)2ucv+-jhngGci&FE>@)?0!2GvZLrB6IVeZfRR$qP zV60TE5jO(3y&%e>%7_JDTuNdZUteXYbdSeJoJD?y=*XgEMMptW61WO<(4^7}L@qu_ zv?yd3m165;bs;JT=?>~Ngexo-fQG(+HB9AF^vmK(g@Qi7#ueZSkeP-RV4=}fhmUEw zqF!i}31&v2MGgrKVUY@yDQVfMF!#*Z)GX+mRc@G{)Tq?MbC?alk?(|3PUnIkr0GO8 zDxD2hiREKF1V_qhGJ3vRt$=|14>#iZ*AFSdvXM?1y9j0n{O)fFg@hi+fV6y7;Orsw zaEIIvkyzpmaYHu`R|!}oLJu(*x)4Tmh47h2VjF-IAvKiLRG$n8mcxii1P}lVLZ8V< z$%*ZY3IZ-Ns{*hLfCy<=y$V_-MO=MSC9WvnV9>0QzlN*aP_H6bpaOqzYDTO^6%Pgu zq>6wH&4%m|Ek+^d`p*gxbPnzRCR0Ld%eR`7x%Q_wj<39psQd;x`& z3ZA|$Or6XriLpsc_736%>zZXIO1z823q?Jk2xbtVtXw2{3l+lxRGro$YDGc@sjcb@ zxn7AWs;sN82TM^! zOj9qUS=DU;j}H^(F#%AXHrS~zaVWM)AuoysblFgO1(Jqk5lGzK1u7As1yVPYcE}(J z5p+5g_dlm50X3s)0|2LXHy@2`Po68UBQ?RPN$v!-j@0mOt6#6J#`R}HP+-tAX;Z4$ z{;}$mSj@!(pa*nSDMBMaRfq`Vr#XV&0;WC0+1r4-$N^j?0(4HmPX`V$!63*0?h2q) z{e&PsGDdJ@3V{h~iHc2KLVp>D zr9?`2@Csj91h93A<77yLK>^*v$Y}Z@iCtl*kWr`tRSIbg23chknB0MJqX$C|Pe2l3 zgkOK$Bw$okq=?=iRs;hFy|DU>|K|fS6{)x~qWk4{R4#<~D zx4^$JgOBvApSAaAVjs`dk;i1=>G(HNa&A>=aD<;FB_wLVri$T$EbRJ$8hAkV<*lE82OWVQQ6EFzF!; zn5IB6(5`f!rs2pS?FEW~Jq z%qIYK03l5d(5Y#p3s!Ci0AnRUU~;loUR-m@4^jiFcD}0TXB1 zpfF-62J|F-M#I{%EJmP(Qw2h>_9gN~2tK

    Vg~qCeJ$@_-~NR3;anC_4g%Q1)38? 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 aQr`8y>xMNuj&*YaR&ua0fbHN5BKritl%3cB diff --git a/out/src/basecmd.d b/out/src/basecmd.d deleted file mode 100644 index 054cc7d..0000000 --- a/out/src/basecmd.d +++ /dev/null @@ -1,22 +0,0 @@ -out/src/basecmd.o: src/basecmd.c /usr/include/stdc-predef.h \ - /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - out/board-generic/board/pgm.h src/command.h src/ctr.h src/compiler.h \ - src/sched.h diff --git a/out/src/basecmd.o b/out/src/basecmd.o deleted file mode 100644 index 268e886a2966d991d92b942a14c0009d1673c8cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238088 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%0DWFJKZ$Hw#%XTojwdDG;hh$S+k4 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 Hu>Su8QQy@h diff --git a/out/src/basecmd.o.ctr b/out/src/basecmd.o.ctr deleted file mode 100644 index 6af5118ae9742444fc1c851d15f7a44ddf5b9ccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmaJ>!EW0y49%zTQVi&T!To?9JSQ6hBq>^ZXF-$cSg0+fmXs{}`cabY#B&-S5>t45 ze0-$5TxA=Uy==GXZpnUZ(w{j9-L_nnOqQsutj>`9NuFSgbX6I&&kv4(PSJ~4(8HFV zXtm2;maDfB%sMm&tqj5?tK^nHKYV*MK5Y@wZr2wL@{XC>*;1cWR53lfpN}nedsO1g zjMayjKRu)Ts5>vxVx6(Pc!Ml<4;_9uG}deM&$K^dxiv%o4vcHPAM|HF=*8pvzIMdC zE5P&TEdRC5U)lFGU%^-M)IU#2;?X1i)*SX|nLAk7V(j4(Q{Gfp53A+A4g+emc#nea z`0V+FM_%Yd7<5hfBP{&(ea`$7T2*rI2aguCYR5_GAHA?}0cx7~9e;U4 z=5mWn%hFI6)A;%lje4&3F(mP(Ltc`VJym&QZ@Kznfg2=#xjzaKRcTYNy@}RJ3sz6yL*L!Fs+~Us6dMdy4!%Ui}V diff --git a/out/src/buttons.d b/out/src/buttons.d deleted file mode 100644 index 0defe81..0000000 --- a/out/src/buttons.d +++ /dev/null @@ -1,17 +0,0 @@ -out/src/buttons.o: src/buttons.c /usr/include/stdc-predef.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/ctr.h \ - src/compiler.h src/sched.h diff --git a/out/src/buttons.o b/out/src/buttons.o deleted file mode 100644 index 9915514f6839692f0d38518ccb8f509435950077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166672 zcmeFaXIK->_W&BiP!$kRum@}bX$hgJhyemb=>!2$BSI)rg@7RTUSE3!yJGLX_paEx zVpr^9@7{A}c2khI{Ocm;cSxeeBf$OGl41!}Y9Qb@QIGV#T1dgF_U>y$*8#so+F&qx8vxTDt93$Wu z2?y4-grgN4qu>|~2iCQQqYWHm;1~-B*74!6gJT>Vfu+9k%XE-LqF$E5+bAdwu$5c3`!GU!`I9%bF4#x~QuucSr8yqv?m<0#cxx?WB z$80#}z=3t1aCpHn7mgA*u&x~(?cpeeV;&q>*8vW1IOfB#01m9{2!{_G3*lG<2iA3h zLk!1aIF`V%naknShLXcEz}uWUc+&iFD8= zE}nE+S@}azs}|{_c5QB2mXf(+*8oAsJW3kZvbKnWDlRS=t!QMKhZP7PQlT4Yjop#{ z^$oVbPx4}e+NK6K;ldCOPHi)*omg`84R8%e18c62K?j%~X~6AN7vI2M)W-`Q=1z0G zsKs2g#tU6~A-2R97|;vfI+4(s8Halh>WqTnw=tgJjW|+$12J6G!S^M?QJ2Gwg~9~x zz^|5AMSsUN!12|=(|Fo$i0WRq23SSg#ak_bCUhQprUrN51{sE)nZ*P6&0N&8{0tX# zfO_U8I1m`%3aHaJz_aNJsKF-2kGJbO#u#2nv2+v%H;WXwIejwgFBiM^*} z?&ayo*n30Rd;ZM5u{t^Iy;Am`BXe(w&IG8cPsTMt=PCSdke!yq(VtAF-=H@~e@cC< zwW33xT@N9^Tr4nr1$W?2pR6Mp^iQZE6Y^p@E!6P`GPWko3Y#M)W2gN|r?k&v@+zj! zVdMo3(m49VMEELpY>7Jgs%{c(*lrY>W6LtcCJgXK!cQ^|0W*#mokOY)VpQXZBONrz z$bas*L%#G7s&KsOHE*46!-WS#$VFMrOll zh?V+HbdY*BKy@P}Ts1`!LKropV*^mwFx{rXeH$|b3w@mpVK4Nz9ce>zPV9Ao2- zPy;-x0Y}%QopF0(FJq|%a75;g0WhG}9IVl^fCe34Zu+M15Y`x2=;)dl8`Fn$pu(`O zMjxKWz~}1gv}uTUjJc$bIyyR13%sst1LH9fX*Bm~h<%&l1GI@*ZJmzB_#$=x_4x2W z6X@662D)>G9~Srnz@ga_;Fgn)PeXP#bN~&Yg@Jl{R>lAjYp%xoIh=-0Fdf>29YZ5% zq488>V;vkk$UY!+00f?NIr_TIshq2=t8d69cXVqTk(;%3xyHJNy0l@VI(p5?6E<~e z#R^>$`eT=_Dbswnt{D}UwYfV85$Yb$t*6UnZyT7?cD0#Cx{YUt*ns_I#AWAc z#dOOxg4tU$wMGqTt>#(RSdU)TM%4k)_W#cR2Z8^C!2dzu{~+*x5cod`{QnyQdVlBx zwC2zHKQ)KHYpGfP=Wp82pY{LWYczZQbF}}ZhG&*fdT2@m=oZnUj1&asU@k#DvF+6Bqt_2> z^$N+kh@AVAb1^v&Am@SPj80099(o5jdg!!)Vkj+!(PB6)M$lp;Ek@B|G%d!^f-bfm zU2HwN*m`ua_2^>jF^fHoJiwh#i#4>^Kzq4OuZU^L;Xb5S&uH<679%KxMv;O$nqG~e zS7T|hh87!Wv4s{pXt9SBdVA^BK6j=RxS_c=(Rv#GjxJ3S`OEPoIT0ei<}8AiR7F_&S~V_hnzFX zIiH*h$eFA%m#i|EtSpxQJ`+6#dcckq6I^F=jqjTTA<4SM$4?pJ9_n= z7T;+xlER3ggi?C7j23HYv5gdZ6#QHU{3qzWo3x;mzZfA{e{ia4~wp ziXS?2j8$;B0&*6TGl2zHM1H%GGsYzTp2#o?!Qm39aWVS9;bP2z!}TF&0zqyN`Q3$_ zBk)XSOIMT5ij0-i#*$Wj$T^*ymE^2RsDw>(34`Vm2F?AGbZcA(2IQ3gGLUD5?LSFb zDp$EvDU~v8csjkBO^dm-D51qdS}dl;Qd%sd#VT5?rNw$$P%h48xQR9!VFWlMh#3jY z$lMF`aVmPb74+&ZEf^udaR0Zo@&heC(&7s(zS80wEq>5q7{f7WL4^mG5guCNoUEG$ zzUt96r5O1qo>APQSVb8!r7lWQx$4y>{nEE{NiA_XalwfR_+>=Snp}hO3(6@dccAq2 zCr2Q>fJ;Y7=}D84s3Jyah>Ua`pd87DjGexd(ki7= zsu=zWvHz7ady)RB$Ve0oi5dAx3atz0goND0RCkeMMp{;Wp<_x`zH{$1W!}HFfp-7aB(I3+B_pl3b4p@j z4R7*P4JkWc>D)UzAveh}MUkb*O-rO#992Dsqb$l%$d(Hmfk(APpE_zjavbWBwwBq?$o^OOm>N~ngBB`Xq?`MG4AFp@uE3qWyBgbr~c z(4b#-Zc<)ae+7LwBRea_F)2I0cLr0Dr_Aq-EkW*)pN<(h?jm|kpaD-Z5b2kgnvhF- zVSuBCOJ4Ts11jv_BtfgLAWV5r0&?&7cu((=*(^gOvdL8;7510+$%<$S)PP^rkxO3274Vq4g;Lz4$fVCwE7 zGF#{c7f^eYfWJBUN`63y%mF~3=j7yM$78Tko~Ou4O6DU>gXLk-vhZjbwzK0o@LIIM z#yort01o;O5=Y6Up#joRsVt5eZIrZ|L>?pcmjywEy9k;>M+C-Xx?WCR|Mn+w7l=gu z!SJLwGDIFA5zC?@CAf|R8o}Z4UJ4k^+o91Rl1P9!02LOKv_#aD!^-3;0QIwY&|h?v zL>?O!E(sNO@r;dUkdc;l@BGC!l<$nA`Kn@O_eppC|IMg4OUmO_44~P!+b09w*LZSlg zG$8b6V}O%fo(K4wm6DcRL>{$+x@xu9Ev?25VFrPr(ehxaZ=^U95Dc!7@(5wWz^cPe zMM#J{$QH1HimY8-JfRwKMjYuEB$q~s2_)C?`6y6_7fG86LB?Rb1XztFBNpIq3r z9>n}my*@2Tk);GE0rvJ+z>C5n{Uwp|aQ|?*B-CFj#!LQXqap z`u>v8Ft|;r5uoA8G8~2WdbOawoW9H$!)a+a(;nYO4AfyOdgPdG3FC)w?mRVGRlfcu< z!&M;ia&vV9k`Z{gySaF}dANDG3fo-QsPE<#0HkQqWkG@5KWD?2RXqGH71ase6X-@z&jo2QEh8ALcAIlLVY&j2|Jbr?NeEj0}|2|V0H zULse3git8-^l)?W@N)O`aCLWsUg1yV=I#k>#52GZv6Lc!HZ>wK($V}A?SusYOhJGW zu?^#ih!#^Bj=gF~cvm51`HDnkT6Pv6c!(Cf`Fv2Fm^);iSqepxoG2%96xqxGfxcN4 zKp=D@>_-wx#ELXBLLS89_y)+ueqAK~oLof?ppiT=J0C>8iYKYzj8z2C0#A|1-9sdD z@o@EU@p5w$xC`8H1in%J@^D$Czce5KrpLe+u>B8-ian{BFc~VoMq6QVh2?{3AiIz& zdAROGrvX(4Bro2H43>t#dqTuAzaU8zxkR`Uphbgd2!y32Fs`o40Pppahet{xB@w`- z`Z#2!Wg+_l#!T+Wc^x|N1nzdcwg7Ni1w#vq1eEFM4ej6&J9QI2K8?cxG-hy#g}0YT zW0=fplYzwm^CLrp$54KUheb(a<hAQG-$BWx%S^#uh{#Y07| zLIGJkDoc2LcQ+t$W_+w#NEkk7B(9*509*+@;n-0Vt$~Vy@o^ldG%C!`>u;E`K!Y2H z=O(0NCh+(zR6G~n0+@kI4C`0ZD;z;N)f~z{HY6B>lR?aih?YuZ@=zi{P_@K?21tV? za-g#)31BSL5#~n_j9nXnixA$Jmzu9k%I=rN&&*4);}NSxuByWo4F&~UECU@Z3UnlF zgrLyW(ZrG{=AC2_;Wxzt4fRCg=nkSaG&&dsrv@8VNpWPea4U)^%B-5{$qA7}MTr9m zcF3b75r7nodIhkNGio>h6rLnnVRB+>az+BEvQQyLbpUBKB+Op|a{xOcn2`ejWMoc^ zkf7F9{Fp0cO=o8qI zI4UGm3>r4S1yz?32MKqlbFWSSR8vaKNXSZ&gRPyb=&R;(F7T)(Pzkg2LsL!)97!dT z7|yAMg29qd9zG8E&GHeJn1GcCaZr?5V*maU;IDpSl;4388IlMLxcXxPcUMmUsmAgn z|EBimpZXA(Jh=&3d6{WS!1n|tqXbd2P_>NON*ap#umE7Mu%4i7%6TZDHB4FGu(052 zc5DEsCNN-lkOwS6#XBgZwP=E@06|v@2AG}ZR2UG#OaGjT%EBkACJ+m>a(5DWxPb;D z5P%Be=^}(5E?z=3X}sJ(AMtP(0Vh|08Sm~+_(+s*a2G!!kX6eTt=1%vppcRXOQ!%v zcEJBT(JcpBQOa|axyT3PN_i@hiP|(r9a^5Bm7fP12ACH48Hnwg4XE~4Q#0h4jLL=l z6!brT>>I2`Ko2k;itKoWV1)C~B++E70pTFQx&oPi;1x$oWkDel;KR^J#VcS!YG$Er zqeKUDk`%o`kx5h}!6UF#e=Jl013)#_{~?-*#x9lk$-$U}`4V>v#VFJ+pavIQ4Wt}! zM%4%wdIJCfE)dpgrjk&bw=ifytz>zqEa=}jge)jBEC$BF;JJTTv@gg#Ixau}N*jQP ztV|(dhFIbVIBofpkpL_V*hLx?+&(&_xRa)tmxaMk*!7zzB$3spdc?Kmm~hguyBXDhbc{3PFvP`$frkZk*)oTtz}+ zsvHoM58D+Sk`j~&4sd~PY&#y@C_AjekXg(FXOB@Jb@As9b(QKD!>Cpz?uJX>9fN`Q)$Ga3l!QzEpYa16wNas|D? z1JzcQjED*fiZGF0R@ zlCB_iK;#F7`OE#hQ2YXK0Y|kwDo7e2<9BsHcL-hwNn*kCh>R6rrnKXCwc~Z{$OCVQ z9j`U8372G?JSrwhio^^mP>HceLk*Ne68AG7ndKio7WynW8({?00L1?M#s2;n17W$F z8r@**teOiBO($1(p}+m%9q)sltFxIPwFa=<1m{Mw>pfcu;zJ0kbc*85kyMB))Z?#W$T-UUth7R8_6WF`NN|&aRKPh<(^YK|LsJSF zSPSBvA_fQ%tQm=^nb}D=eq>42jA}w&8qt&gC_y;Nv`p6QMi)2odDXbt_@W93)b!>t zREClcea2eQpf&^gsac0ILB5(+8-p@YxZXG;fBvyw&~|1}_~C4@91l0-zIG8HV1lJSw$9S{7%bjg^airC?=6Mxhoja1pq2hz|*FswSi%&@d7Nw^$yh(hpF~i`dw* zT1>zi0izN}13Qlji;na|aa?Ul5N=eH`Y)b*s=!8t0p5W*43sEz0X>-5!y2X)t9TJ> zCp7`xKqMD~st@4ELndFn9-_~92TU{w^%5Cflc^j{T%m--QWQ#%BS>OI3gHh;^EE2O z^^Y1PZc6j8uo^Z3dQ=fE(V@~1v3@!+3rrXn*tx5ySr0Y1urjGZIzDu&Q3@Ovs@ ziK_zqdk{L3=OiSigO!m*dS$^{?H-ShoxvIdEdR8a)XPexCy0D(PGk?Zu9kH`&@4}( z%*akjBcXnPH}s2Ypq$4V!4fZYE+fi>fj+{E)2^oxv*$bRJygb|?A;wkY=?>9PHxCz2 zFmZ$)A~2{S80rE+Ko3P*fD)m1L{O^BN<$>52xA-*mYC>d8UurIvGGryrr3wX7Pg*M zr&SsY%dCh_0Sm09_!2Ezi>(l^SU?CW{{%hc5U$J2Nr0#wm{X8L15!U9(rQ#9>VMMI z;PucxD%uxKV^qJ%y1F=NTa=J1;OglL{uYdA07IcZ20Itx8;3j;&{YCC1b5^laZ2U4 z2hNk6mcr&Czzj5q=kJJ0MNrk?!uqjU=?;oDQmkE1nSdW&QL{}!^cFU&z&}PD832}Y zfD~gS6xskPHoeL(68I%B8JsO5Lll{&N+X7>J2!}oYV)i=Qt`mQ1U_3?Bu|T?Nw}E0 zoTw@VLt;I}%v6c%leoyJLl)l)x)dwXNy>&Q>VzRUCJd}XPi+DReM6oO=7l0do>!Df zqI{?`(2y*dI`Ow57?HdFnY4qcnwSxSffKbPp=jX+aVZ*bX2bSc^ak(~c)Gg_qRva*$_x!L^yw$!@`qhhldRXJ4X5#z9UPSF}Q77bM!F#=v193}U_m?L2X zKwmIMnokO$t?cAv&@Ny~h>{K=k`P}BQH@#MhP}_D4ZuxBT0n0##-WKx3$MiKY9Iqh z3rsW6oF@q*)f7LXHwZy7nt;ZL1z?=yKpH3bVxTt-R*YeDBrL5+9x7`rb7VDuKUg4P z3cxiP2(q!6NC`5336Is_Sv-g(+7Yp`VR+S`iTo72=xC)Q+~qRNjic5YSqPPlrqYR( zkTzFM9}WwbNkh;AK{iRc0cL{9i8L)yBO&q6oJF3C1CJya=A>nz)<)Pza*{#`ZdR3U z#mIEDcEMi^nRT8}fZzj(?&9Sl1lI{TrXarH0_HA+UtBy%_(i7j%VS5#cBm-D3pMLT z-k?hSW#e%WiK9e7T#{-H6dVS293~@+ASZBtZHEHQ|A8pG6hRBvO&lN;r@`7JVgk7x zOKl*ESVt-Z=OFM1O=5IuSYAk1j7xAuY8jPdulDnPN`=Kl9|YtTbgco*WPbRs&>O03$#k!rQgI z7BEa?2Go(uEG{A|LY~Y?V?o)4WJ}j)j9Io9l&(K2BOBT@%9HT~JXaWY7N zBPrGhFZwH3Dw9Ee0GlfaV}v2X=&0+2l{cZ_2mpeV5!nZ&-QS9iuG7g@W{*K!AHNdUA0}RF?#7XPr2R8*GXX zKEUiuA()ESXs!ro+IJU8oSLMf7(v7IONZzRDGx$Vp{vLp{L5}aPfs^5PXT&o1fJly z5kcND`0Bw;6u$nUZpLdGDb2w#YRMmu^N*yAy4^x3y?n%sH)q+7J zC?h+OW-!bDL11V$t0psW{5U6-=Z?u0#i>z^N`+CbNN^|y89S745tjX{y`xkii=s|f zmZLG3z}}z_qBy1~l|?W;HXnnewJ(4cSBqR!&LwVD}sgfiy)Lpo;SfqRX`C*m<=%zeTF5I z|GZNII2Zd$G`TeV3JiNd&Y;CSLC=Y-k8P zpT$Y=EV42Nrc`bF8Z0HVzmOyjsCJt$yG#Jh82+RcV~hSLm%W;eQkkfcf)3sg^~NV2 z6_Ofhry7e7FD9%?lVy^OZ7ofYBur~-!Qq;6Q-iAzYdbWUSCj6b(wP9FWa&vBnMU$m z^$luTn>0wQ7FP)To{Zt35){m4Aw*?H?ExV`903y8+y|PE+A{%3xKR+_0N+DW8tjhD z22Kz8D2&rVRV9}*KY89f<`*Q$;La;_WkS?6RKKJvAQ5F*-Zk3b~NTftuq>|=D>RJP>gyy zxjMP<95XZ0l*$Z+BRWSCvfw(QcbYeDU*?(xz8Om%p_e;%&H^bJ=6bKf< zH9Q4g9Ngg!&PvCejC_b)0U($Zc77tJ+7RCw&1n}RegY$|uGTs5XiF04QOg+>=GGLP z)$|+Hq*5{J0K@OlxkEHVM*C&dBSt&=@2UqHOss!`b)M24fEo#g|3h*&v)_&&a}C^& z+VY6+FnC5i0h5R-of<|kYrJbY#bAz6YW@iJRDPn8SBwwyFdCB)FYE!CY|uAhzbfsH z6(5+rhg&|;TanCRiH{QH-|gw4dLzwX#Euzb3YJtY^VMnV5F%10fQvd;4sJ;xAqV7t z4iKm9t)To68ssTit_Tbd@AK>-_~h7;w&L0G>?!#Hhr}*`>9MW&JU(&)XwS58P#j|{Re{tttf&sX08Or&z2F_~baSv2r=2iW~64gnub zbg0G_b==I5mdI1B1{osc)4@L7JY_tSipTT-erH%A+5*-KTEz1;I<@N&FTf?F4S*d0 z7>UatRuxv5x;==JB9&v#EX@S2=172KI!FNr1_+uUv%%2TiTQE?Y$?uEuw%2e0}vPU z`0Usm-~v5*ynzlp7lKAAzmS&pptU&%-txDpL0S#vazfvT;{V{vqaQ`k&>q0C_1}G+ z)X?#j1Onj^RgT9ACwn7dlxnRW!nv3WfH2}{tEqmGapAHs8l0}CA^$t)LbVzr+CUnt z>c&Rb&25(*XYT#~wDuuS~@fFaV$w*!BS*kO1lM2Lgh_WE5*c~V?vKLdE-z@xx@Q4q=%c67v!b6i*Qr3s~6;<)tuz*8GuOy zbT27vSR@%&5Y&c5HZOFlsD}XkGwVwC9H`V)Dn;0M3K&EnS!!&;IA|okY#t*?sV5&Q z5unpSO)NODUr>Q z>{?dgVBmy$9xoIulGt!_BL)tps^b@9aDmqVn+6 z=$qZU4+wGMgCgn>h-Sb~7W?oiP4fjzIFc@b*#M*sHeju2M#=mybi(u+&J!TlCp?t} zF3UmLlK7(#2JDzfWQwM=63 zi(bts3HMl~8(ES@Uhsd5l#*02;NEO*^#7LrkDsQ&q&p@gO3^z{nGOpe4Gsq*12r!g zA{7rcnKvpt`ok*F+>wnSz!i5FVMqrR1N!A2>hc1;N9Ac$r*vzW733uvAAUl}LO=mO zR77?HLO3xrP{PL=2XzF&fvCJS#u5H_7TjA{NBmqgvLLJ;Sx{foev#p3!G0q0NhB@N zf{Ayuo;40pP^q&M{&Uth;{zwlqOs4OT&r^M$d`3gDR{&~fmlz|2S7VerE$PsltSh^ zI7l1#t&Bfd9(*u`ASfgRfOX6mORD{Rh^aLq0pbb>WfXAuZfzeA$yA2@GC`OC1E-EW zFUYmQUyuXi0v@C`ViYJ?0l!_^Fp>=UvX(;fznHV|Ff5O1XC~sAhG&ia0F=4~kKUzU zgL2@}9q-UXjhib}+Y7Wz1)dfT5VzPLy9^>h$%l=O@C71OAc?4_IM=`7^4e*TT2~+d zn9pfYCPIA-L=_^N>)G`KUZ~B>G)KxrOF^Sf&dkmNRf%lE)NDajC8ix*pcrHt1Ed^y zy|p5&gzd6nTUKLZKLbG+)&DC>AVvv(d*yFzcu1y(L@UB_tD(FqXpfmMu%wI@_79Q) zGmquTurnERj-vtqjUdb;@sB0}D5B6(Y0jv#Dn%9zVCH)^dGI3G63PIBktnQ4gAahf zHXbV2SSJn-H9=s*HP|C;Ep!R+(^Bxr9yMl8pkJ#rR88qhl6P@)EPOvtYfC$2>gamK z?*PDtF*ku*&00Q#bqYr}qUVUs`R2{LX!As>u@31TJk_u*Q*F?KoWMp}pQ@uC6{HRPNEp3M96Bu5td?l65vgHu zk+mdLeAyrTH=vkdFbRRKZN<6~#R6p`lakKhV@>wm-?T#0iwX*|nSx{>61RS9-XQAc z(#$u<4ZD{suIO<0fdP%HjsmiQkO^`=5UL0eVI-L0gT4 zMf`3Fn~6n|+|bjh(z1!$Q^nzFf(owZ-+kkc2RtqB@4jsUHW4sWO4$V+1 zz>odVMiiK3)lvce(3DV063Rh(|6jgfh$<*dn({ufPl;aDyu*O*TGqrU|1cS()cC_U zec^+{s86s0fDYup?j<6rv}j9FT?9>Q_2v^>63erNI?CgKARsFWyjGCT0iW1K{Kfgx zEHl&+;Cl}uwMeh=7kt1Gp0SBR>xi zPOCd)BI@4kII68;h{&pJ0@SR#sb`?dK`(k1Tx=^jDqxdKl0fhviFkW zq{g;;szy>b9eP`s95DKEVrFNe${Vka{jm|v>O2W%O+V?PMxZ}f0~HKJu_0;G_}M#k zb5&jmSu`+$RUs>gx+P%njRwp#17uN}0kZfWJS|rLzlF$DZ-bdo&Y@u*Qk_h#z=K{U za3dcxf~Ksl_Mg8@3U5%6r>9C|K?7V>4a>zy7q#ufesMr^Ul=?3L<}~J^(od`7F*NUTIUMi^{#iekm7Xbbs?I z?3Cnskyl|~m?25^g=&VPW~4~vY~*P;9!Ug*sL-k}0m566RjHXSIAYMNtKw70rc^rE z-@!O@+vDZ^@S!;nL@DzN#G zpFoD8E2jIYw|Ro99?T}S<0`ZBBC{Y!3;@PY8PTy4c?FoR)r^{88ZkhXL;AmetBN?J ziNH{$ykJ@%aU`?08_~;a#z1t^K)?dOHqCB|N28B?s+J8e!VGYv8paH)r*mp{rouTh zJs^~BRkTTlhE66L8rN2WATt6!L(bzAmL{h3s_n~z|Mf%0F(Ow7|{{HnYx%1lpdga*o^Md71o%>cP*Lb>(ocH-qS@!qqUy~h6uAM&Q zbN|V-&!x2jo69pF*XuAK@vNfbBC9ad&w0kpzbjwZHrM6EJ@k&C<2jL(&?_}%2**h; zAmG@yooDICN$BgKLiLSeP*CQ1|54dJ9h+ zb$hdWwm3j~MvoHQ__QTMj zRkgz{j4$tQ-?QnULrYuMsd8$6Vz>9{K}{cx=s#A|br52VyJ4S#NXz7g+9?@mSo^hV74IN}Dcu0tKq zhkse6o@}+S6>oy~bLS<2-VW<-EHWI!wW~8^Nb@UA9gehI-*(5#dqZv>9MOmq?73(3 z@o}qnthqO$n|P_$wVXMJx#Rmg?EKko-R*K-Wl8L!$qUMQEt)Lr7CCi6%$bFaO1ss1 z%(raWU>5&T>#j*pWk#tdcQwqo+pgzb<=WOWS4Q~@5kl2c3EhzTqvwM z+G=d8l}2CZ*lk;N(rE0-8&$oE%=8@+SFegb!{OZYaB6&%-#FqjGR_+ zzx~#E5AC+w@6w}pA730SEGpRXQqo-a+oTRjX^$tEi?cUItqWe@;Q6${@C#3mhGn*E zs;6_J-6L=1bnc!+o&79{}SzvY2(^eX;9XW6Q;ZybDXY2M^ZgnAPz=c(lz@!;q)F9n*E@e(?HE>Tn_pvzZ?`Gu zpIt9sI&E}EWxH3w@>^DI`;-+lx->Ms*|+me2CX-BrcGBaVz2*63I74T~d|UflYr)Nl@ou(cU8~hYT<1Gj>{A``4Rfhu5C`z1KeV$(-aq11pvMA1@z$$h~~=?yA-2 zBf7+t#yh<{B^jHt_*t%f=hAVf{ol49YT(ZU9u zO6zoZZ@;hcB}Xa0>RR-Nr;Cp04~n{Fs*`8MF>8O=@MZmxtLOUl+jYCy`g6^P#8~QY z{&nTu+9rC>yOr~II*y9y+3MbWW;$*k8p{VLtCW{;@&%%%=kmfr~V2^BRp zD|2i0d&iNl&aLj6_7Af!OAB1`YD@bI@0M=Jc%A0+{ONx4nfJ#o(mA`O^m=0apsA@h zoE-XfeZBwG*YzVGKlPjF@w4pltDbAGj>+=4Y;f(K%y;pHZyPo=>;L^%*9CqfFHNr7 zrs~=En7Ueo{0En7c6zW2(nqA5=rgzZ_f z*`RZdL+sOp^Ts9}+F#6jZT%g%qCYmmszd7PF?|D%UC-K{o zTDHHJ-YMuhzR~BD!vP=qZz#SJ#)&_-=-%SIZnAEoZcVmSPT-a9$lsOP_tJw!N4p&F zc=KzT;rVoP$CF!@n)R7%^5nwQapT)gocVQ&Loa`qdG(Igxo;D-Ca%-Z-@qea`q=+gTxu_gi2qw^#grx(98vYz;PeuJHhUbzLIsn0*V z_)!n1rWKFx4K_>LzkB_Q=+SdN`DF5oJ07}o{&&u$>AeelhQHLCFG=;WjNNTo>tK}e zoOj0t?kw~BZnmV8bF2Ku@wy@#Sud9%vzPuz4&E758F}N;qRfgGXZCmOyE?p^?f@t2 z=)Av%ub&n_Wm~@PN6W@TFV1<}W8$Z}O&Wcv<*xTQ?%hW_|8ZLe2w&KbzG$8@qWHO2 zYwo@wxl;^FmbC6^I^*^F(aEXy2kY(n&f7Z1YRL%WNAuqmtmr$mkRZZ`A{9>NJ zeQbNbn54HK4ENs4YM#9N; zQ-Z_;-)t4NyuWbiD$}VarWYqnclvzjMXgoOE?juMzsvg0zG<79#aq>P8o!Hkc9YGC z-Xm-IS)q*><1Q<=W!7b_YI$ zoU(P8(B_g@Ij>*YHm7Zs6-P|kXIK67&TPEn+lT?{jrLuBopbiVZog@r`wF2UH{IO(v6k_`7^D~ zTYee2@r}+h&Nyk##$BCrI+wZ(F8(njBBA9~+a;plTDCXKs&@2#(m6&N7JEi8bdCAD z9eZr8ZnmFp-F4~v0|Aqo>~9x*J+5E2QFd-@+}&$SV)JiD7hP{LaoUBRXX@4S=wScy zmP^cS`SI&LmhYIR=;qkmuF~(p-H#nk9sK3hq~$@6Lqk8keYDTy(cr12Wn(5SY8>9{ z@y`&~o>eb=OGezC`KZ5r{U7bCwzuM%yG4DrNf*2ZRqC5IJk> z0`89VU!VFvIDU6y%9^U}dtV&i5~3^-jK1{jy35YMlUE<77Poef-ruH8d{5hV6<&j8 zM$aD0{m}en=C@6Sadj>{6b*kjVtIB(nCtzfPtMo9Xj3s_{HNHu$7a?0y>Qs~Pa$tV z?XCB9sCUoe10xQXZ19_P?6g^E(z#|24*eE->1G=p8}NI9TuZ6NHX9FkvsPal(C7tx~NZzF9V|~s= z?+_k!>b`So*h!xA(33lkwGUr%v|G~3;K=8{Mc?1qcBpSZLchnc!QYNt59Jj#lG%T~ zwPRY7(K7}Z{>n3)|H*&2TU~bpQ>S68%)_tOTQc{^+)3T*U1&7Xba|!V%CDA0bfU^CZ`?xcIL0|^OL`v?7DhP*{TP;-0|}sI6HNl5woMCW&gAuRTrb{_=>+P zo^AGVEZny6UdrjX$P07BFPzFh>b$P*TE5BJI%^|h)(^bT)z7?U_5RRSn^@zKKOWB* z+;?rys4o}4<*&ZFreIBM)dRVo z^pLo6p2wZq;+Q+5Ojfn!dMs*x?y7x>$*zr=*Y%@XW&~Yu>e6S9Pui!4=Vn;-9Mh=q zl4Q~O6CdYq-l`m!Q(iQ9{^z2Kyoz&9ymiyeVn&!fEjnn)vs27!T6;;7^@N5kb%zI? z=ih&N|9aNi!Q=9T3(nlYr61pL>YmQ>`T-Ts5_+E zcfEJmd_A|Ef3MB;FMA7*`-GqTy~cIV`!Q$xj&hpbWzK`6-6l>CJgOi0>)q~jo^>4pNvF3~J{OE=+ zK&PL6H(M5McKm7a(~3L0GqQC`%rd{7Z{s^|ai)cC*t-R0&xU7D-tu_P=3Ct=Crxx4 z+GFmgsmsQ6;x?W&x{;*EBJL`Fx3)$XI$mBoRqugc-D8%!&Xg8!cYi##lk zo>x6K9=Y9H^4j^Y^_SoLI54h5v$WFFvmbhY_gh)qe_DB+0`pger56{@Ie2cp*N;{8 z`Hq9!UmU4r++t#i@X7SPexGt$n5SkRYHU8}(kSO!Z;ysu4b?M@$?V$oPL_@Mf|2d= z0ynRxGtPGVINR>-z{h7E_bTzTX%lM|GjnO1@e9tkvg>l{S}X3)d1)nrF{fXroH8o3 zDht+qne=ks^5FWjtM-rXQ1VG<)7OK)roRrnF~z=Z(fgxaCFgP;d!Elra~Non;irmLu-cE3>cnw{%xD%ulrigZ@{g0&izG%alL6F+sxa1*WJ5cz98VGpTeyY`ny`>BsuV_qW#TvgiBac}qri30+s&WvFb;#ClnY+hqZ#H!S17 zdVASdSLppQv z_O$lnSNna>2u#_sWa#7kj@!#$Tz;9}ciPp6o#z(WyN}w_W0+w5nn&;UudMn!{HoL< z;lta_g--of|uhs@!zFVXp2VNqWzd zX0I3JyUv*UW3$L|>F^QXjb1O>F#C+nw^ZqVXMewzwLbQk*K~dJ4j1nX{1Sd`zDe%g z*8`TXPWZWJ`Kz;^wtf0Eu-H)lh3$)>e;p1q$@kGcaAn~F%DOK_Snl8d`|F$4r8YyS z2h~|*<0Nb1zxV6KVzZCy%l-5yb~Cw}#rCXa@f#}1xrTV^it{>XECzuI*3?L+#_ z2TYFReMmA(O?z5#*6rH8UvG9k{n4>}Z;FXd-;pDBIE?T-YFx&V+LbirS?@g1E7-JQ zrFep#q0it}?sxJnx=&mAWtX=@_JR$uHsx(Uw>@}b`V{?64flxW-HhDRa6<6Dzv@Q# z#MSov`lZ+BTU&ZGt-Eyk`OVLKb}M8$^#hx~KDRsl__7HnF2AYssELE^nPJx(Wk*bG zC^J5@Xy&CEx=u}nufAXYIqOl$<-Kcs+!hE4hP47-qT>m;)M%(J^lQ^`Pb0gr-~l;ohMyyl2GY8|CIT;OYU}`KfUR^ z^J;j)@C{=&eh%_4&!B2o=1p>U3OeEcG#QnN9D!vZ=E2zT2!N;#o*~RD{{Q_pKp2+0Hk@(0sQ+E64hc%<`{HG`9LRMl`O0 zXk^R$TP4<8ySCVsYLV9bh^_f}{w}9R>FGbmZ0lOD&V$9#WvuxL;@U$b_WA2~`iD9+~SAJ9)N!^6@*; z{H*0?{o}m0t{=N(T-SM=9{1`E`(}SiVd(nX#kG9ajpPF@o?JOKtKlqnN6W3}@63_U z$h@sL@zS-`?<>mVJ1>)M{9w|@#NBoNkY%Fe`-c<1801x2_WM5dcqi%ib_1X3^tqke^ff-q}C#lDly8K$>I4;1o%`gx}=Og`@O?qkC?=fc(t^h44g&sh0p z?Z=lNPu@8#b<5p$E?K|9++D?^I1%3i!}2bkJUc*C6|!^2_r{4mXX&1+cOa^&&rRbU zNt~|_ofjqV7uEZEy8P>?@K%!L74Zf3TO;-^lzj~^u}IoHtGRmhDLjy+c#4&OGIw-D+>`$?>nR7CLNNKbSwodcv_{+eZe+Lyzd#QNW5Ri*!Amo5d6{cVX_!YbU{5S z-N~undC4eu3yZYQjpJLUtr$BtMEu`0{d2J^SFTy&ig6LXZC`KiOT(KpN*+dzSutQj=fl?x&+2f-?$zUdn6|LF zzk7G@qJa66`x^GTzoDS$c^9j?Zb9ci+%Ub>dfDyTmZlRuyic6@eR-Q-!Q%ayFM6F{ z*KS)Ir&h}0M_%VNeRr?z35&OGkBp~GbGc--ciOnoq7IwK)?Lt4@2l>-TQ{w@ByMXqtKElH1(Kq-jhyx!JnJ;)S(i^`ixZm8jh{Gpqxs34XK(91@-s~~ zR9bXTt?PZkes6?%*1d;q1zq-?nVuZKynS$BaCUJ))YOaHU+_N)mUVO;c(Ot!TH}{^ zD}J0oywMT~xouu1v=3JxJ2eSJ7WxZzRgPFIJzRWR7;cZEc@Sh%jYDUhvVbT=8(a}TR zF3=})XCfBcfXiRD<>QpuPps}`B!o6dH3I&Y+n?9d-S+DuMKlfwL3GWq@ttG zx1D7>@+I?AjIPY>vAk{PF)popcgbI9cFi{4(?|dKk0!mI7QR>;-H$tBSl90T7e^lc zYk0U$<+@pG8=dZP>El#eo=5AY_xA)u4(et1Bl*{u$kx2eIrC>s9vC}ecX0bN;gzY8 zD}q0U9rt?|6}dfq;j(Q(W53;*^0WEk^Fd#{qAxe!8J2TuLWkLN8?36FdU&*A|JusR zu#JQJ#cl~$JXm}o_DRn#>!kVam3N9|k6+)kvmWM~bl}mf--E5BZ*x}N3+(JN>ekhA z=LNCW_cynHa3Ce^~_t<36 zB(aU~ezO&GUB;z95RTt7X6KA0KPn;~EO=Nxvt)MCrKTf3TF(D{ENe;+m$D9FGmqw9 z-8EvgNwe0Wqvwt2cX;Cbp?$NKu8!a4bMecGF2k;@;eOt@eTZRhs>$1q11>hm9M@S_ zJgv6xw7BghaYYY>C1Fb*-)?8Qd*u$3Toe1oH?K?__2XinC;qK6A5GuvHgAElJb7(Z z|Czt_zC2hE;Q#!lz22jMWhinrD`(gwUQ_HgO202H8QEjPC;JZ_QlGEi)2&uY&g{6JUEe()+G1#@XZPPVZB@(U zQA_>y1^aq#*}S51VsD!+cfBjyw*Mebi|ZwqKAUoQXiSsy``#V+b->0a^i4(22Y2P~ z_RTHRIrp-nXSmZZ?z;4q+X_nuMiCoj{+sfh#r<~gT{gz1?91-#fxAcekn%TXK7h5-XnOe5>MQPr) z{LO-jNAu5=&iR`Bq{K^S=(g|vx5li9AM~YmSo+=;Czg9pYBOom#gIP9Szq0jmCUj1 zHKFrzaj|#T>*H-F34aaf8fVb{ukj&m9)DlCr{c5k5r4(kJENV?+YGAu+I#HX`(uV~ zS#h|F>A7VSp4-@5@bUWmIns6g=qcY#W1L6Dcf7o7;k3t%&qs}!T~$A}Q&p>*Qx?w4 z(TRW5|6$OvaY?oA?)S=dxMyPg?)#~+Q@4Me&E44}t?}s>pSO%#`r2;vwDjWz;+&6xZayTFtGI9BZKQfr-JrPsg<|%aZt)52>s2i zn|ZTA{J_9!CfDOvju>_Qbo@@|MMafWfs(ro-WnS%8?L`8V4cg-iXXcVH(&4S z*X!2%q=dy2Omi;R&K|d8<)OGUL6b(Te|&R<^BbQgJ95IzDq~*WdUQGb(2|EStL6-{ zeD`e3W`)3FpV%j;^u^lY-Hs0~s^>9F@oDC)wh!v}UU<0wO3ePs z-2;-}Kk4%AeYcODFE83REpSuaD}&Ql@88w+XODvWj>CFgyz#v5_*})bpHsi+uv^gGlXkFCJIhOk@j!zv}cgJ5&-x~hRvnmT8?p}1(L=cxVb^nD?ChgmpGA!7RkC=L;hMJNUGI;Y)9J`s z_tCpV`@}Bx8Sa~lepQhI3?RuY$@>V|0Fn2dAzGPm!I$+J2W!s{MelZ=i z>+S3wg_~FCUJHC!HtOvy_aEgqyLa8ZoGZ@y)_G_~$m+)L52Pge*z3;nt^cK`ZI7VL z=?(je##=8CPu%|P{*lbz?dN^mk-oge?miR32JLch`Y5z<;%$qnyd9&RPWHO-OJ}Fv zD39rJV-w0>?Qp&l_@jgOlvX|M5A7`$np*soKWW9X?J3u`&C7msWApd373Dpa_Iy*c zq~GDW6*qq7u4_N5_+$MC+Y3JTe(E!3)|wTCrOReex4^mEJ3qgE<2Ylf&DOC4ZI_1d zx>&Rbd#C^9-hN((FJ)3fb-xaEc6*(*Vec->%iF|bI>v?{h&HlZ`(p)v`qg2tvbq=# zlQxzvQ_k~xT2Q=MB)S^%>E)cf@&V^ko|Kn=G&GC<;d|N0rss0!FSV^BPu^#8d<_b5eswCN-Q)46b>o{@+J?w~4t=w5RJo!&f9cyEO0xrD$xo*}b9FD#OXA*W zQ{G{q`LW!4MVIa$8hK*dxuwA;UcRk6dH6lvA=4o(jqdu@Pg>OZK+*Mp)Ag_Y=wp9< znoe^{YKim(~pymxL;}1 ze3!wt^DWLhJ1=OmaZ~Qj^R}BWMF)O6)wA~fg^KgNTGZ`0Eo8iYiGK6!+C>c>#Ld=CrhkS?hS=CB7W|}`J;@C;Q z`p-Kp_NlwzP(;DH0+;h6BX;;NGPGW-D3JH@dU@%!p4}KP&+xTpLms{UU}9A(Wb&Br zP3x3RX|cCX2(NNOzwObd&fFa}e38f-Oy1_trVmf(9geh_U+2<|>8l)X?wQ)*o#;r$%Xsm#(F<$> zzQkA$Hkm7%ytw6&O`@qj-LKe~k3QzzxX0O#YnJs5$vwO5QJlxMjBOsx-k8*L+EKKx z?A?GnXWx%7*&kkHPw>}veZjgEQ(5leXU8e7j#~I7QpBD{U z^UP2yWbOP2?$Y5N4^|#OG??Ze`%3bGxq7RUZob~}!Xs0i-p{D6H_mRi9l34!pUM2_ zlr{Oz0sZV8*w-fo#SI-j{}W}bQNY`wbwl^$>s@?7FV5JLk-n$?#Gys!HPT-g1g9^b z`6;06$`@t&j8D;JSAGs!^-FT-A!p~x!)vaYZe~6ys~)y{#whn($~1*ad9Foy|CCLS z4#r*{+}?Wl_s|oqhmTL(@aN*Ri@bvNOH1G7+`REVpVzRunELhNdU$YUmFOfQy2NN7 z)#2E6!~ZTk3S((Q4$Bu{-5i`T+-WrGrgu{C!p$&*KHF z?v2{|ly*LR_Og&hZKZYNwr7sfG^|~=dWvKFZkRy4+ih1xX^N8myjoGer1-J=TBD7& zE2zHL241@P+L*V$IMg6At4h+e|Hw-h(#KSrEgd6w>4Mt&!+G0wTy-z7N=>7Fg70DP z8y8|XvWj-kW@*VL1@%6Yj*i;RJ>Gon<;>bc3SWboKF!ezT6{;z$URc#)#T6x({r{z zIH>(1K&yi_UsT3%|Cw{BOcxtpToNUbe!xaN1yp#{V&~S z{ONalf!kB|2-DqN`&&f9zWY+#3U;nINd!wCZ&|ufT1Fn`l97uirpyA<$(;C`W zM>ir)5$q5>~*kiTELdW?>DmUxejB@d>^oY|rHgS~eFxQhePMJDL&fPRTa@)|R z^J#nM9@?eNI%X~}8G6;PdO3IUY`Ti%`Sr*A-DKY9Nj%9dH7?haDqhT(X3Fh%XUfx9 z6}_>QnuToE02dx_`}O8LrtvB6Ugu3#k?~DSozbNm<4G9gm-| z`c3&w9s6TOmYuJ~$g27VwflpoC@BiSHcZl773^zpt|sHU&je{1!er|JtGN9(`)aDLC+Zzuh<&c_?e?>$~~ za%#fm`nyN{&hrCTeeHYK`tJ4u`7cV=U$fP2ucbd#Hd2fQ6R>dwZLoV(p`_Pm4H`=CYXTYh ze~XnK#Ou$UQIxQLc|pPH?3Ibss40)O58rHfYJxHxBv9>3fFd&)Cs)^4*e@NAtI= zx%**fkcO$)9DU7$CGVrxjoLOK@5Du>x|V!vVbsTs1FOd={29!zIi~q)cD+iU>W`z} z*!({IX6N3Oy0^xUjkNpzLE^{z*1t^y_r-0wJTzv-uZTg6s)Cbo>}!ReVoh^u4JBW$ zDk)rM^>yOy_R8Dlh7G#+?E(tTVbgIWRm14&dzr-JPM?En9=&}t;mVLO-(O>n!NU%^ z(d@!g11$1a&OF?t_Hpjx)koI95aaJMs9uu)mr7gSsJ(sZ!(XA_OpeeUeg>W%JvpiQ z(60O=`zOYZ`=qP$Ec#XT(iF2{{6pIhP4rE=Q?IN&b!aw>L*S3O)Dx6UdQs; zmuzA-J?3_D(a-U3JXiYK{T2@}xVj^^VpPaw->_g+r$>XoUn~gVD1|KYyK*j3U0q?y z`;oNYeeYJOODDZM5Lg`&oMCBO-g3NY%9}<-F4z6K$;F~!vd8Aq%i0R-j&2)1&e6G*kS$nhpyjR23)BKJ;+K?5Z_Hguh=HZ3WD=WT? zR2!j?%#caaShOed&Y58clyqVzwp;GHxoor7(CLi@aQ@rvS60EnsS`g*T^(v{s5@`u zljv5h^v3=Vetu;{kCa{Kz0{mO?!v+7<`*|M*KA($Zus{%pZu>Jdi|#KkHQ+Qz=q>< zPJ0b-U%{HKzP{>;<=W4Sugd%gau3?75YbOhYHE~IqIp67NRu^cFJmSpYkSiESWkL1 z^YPaG`%i1DoI9yMJk-|0wb3GO;fUEeoA!@enpKxqH!(I%?D-yl>oZxIMv?lj7fic7 z>;0bvPOgC|YRytd=KXrE73w>}s{>AkvrM1oPMc_bU_xGP{rNLb-9H>% z9B^lb@iG3f2O$~sYoG2k%2J;mm=Vp6*t+IuwO?DwO-cFFz84syA1}V%cHc#JL9yN7 z=|@joA8f3sE>~8e_p<%`!&2vh>oV=JmIK!v`L(TfaX3+F}=6sqE4FO2dBcfcB|d5 zT9Bt76=S2KSWzV;}&CT<<;`?Ux%Llcv^n4JZ$Q(3#ub-#7#Z`_GXh^NP$rr#j91a7^ZG+kpc!^NcPp zp1pNX;GsQ7Yic&E@jbM1{)U2`t{FwCsWGE{CWa(=dl!u!KQTIKZ1BcOrDDd;&Q^^> zZHDP_44pamhVBhp$J|>t@W?CMwyeaXex>zGxIsimP6Pj7Q=I>E*G|{-d(_nDzwX~Z zd1%oOVc(rxq)HQ~#f>f+Gi&?U-LBjs%Vp;->S>Js(3t1H4%J@xDri#-w8y%XNC!}Hg|6{I#URg$^Fxko=(uLPAkGt-oD*5UA z%lI+n$p`O!`1s(@?VP_9i_t@je-wWWY7MGQEY2<3H_bu9C}&r;lA+8j`T~*_gGTP7PRc=cxCNo1f$x4>JBpl^9&Q6FtkYnRRht4m0DS zg1q_db!S6!mc2+Cd|`Z(Ld(eAZi~<7Y)Wrb$lh^x-6@;F7t$ZdNG!IiDXLIxwdUr% z`Zn))Iw#;knx}c|ngyE<_e=dEm#y4=aG5)AN58O~+0V`UeRx0m+1kUm*aUT%fj$z5tC3{{C^hkrY9^_6{Dd;ZF7JC?sFs!A!<&y31PsK0Um8Q_|$+U{^+~2UT zq)_*QR*w@dAoP`-k8Hq z10UY9d;PBe!$-OeIiGSLO>*!&`Q=$k>5FrxXC&P`)iUd38-4!aLiy^z+#`%j-alW( z=;e$*bno~ofUAmSZFMew&T>Wlb`+>bxYv$)E__UYJ zd+}F)$@EJ@KIW99xS94j+4k~W=BH7t3FU*uR!(+rw|J7cG3tQFmrF|$&$L|jIQH`4 z2=$jM9CfEJvZ;79pzY8x`x$xMr#~0HYIOcQ@`uXhsk#g6%93<`OPniy?of80k$Gy? z{9Csw&JT6^d-267$-d9GoSA+hg}wCR=cH%j3nxeRJ9x%krBLk)=co3X(?tg_hF|nP=|je~Z1a zI;b@EtzCoac)!#1We)SS?t_7~ROuTP5VdIHfFbJBqn~f$+6K)Tsa-!tzVVjLra57D zd;46zyYsDoP=$|70F;QJ^J&cmYIW}O*P(>?>YI*sz;?i zY`@AS-Z7YT#_?Wy=+u-qc@6I$+h6>UnctewQYIFz=Vz3<-{9Mwq~L_@pPgp;%Q%nL zOPuuW=ZT-}$qzrP(CVjF1ko}=)@r*Sj@a-(CQMr6V*@X-X=#K~%-mw`2+1W?Lqf!) z4IfV(SXrUDIYIvWN~J&Yj=D!fhQ*$6@Cj%dkrux8a6qD6R%V~zA@8en>JOZ+pE~NdK_GO79)Eugwpdo3}l9>$fEG z`mEa5eK+ba%6brWCC#pGt!=H=PLYo6%2TVeyml|#oq8|YBEQJ`$Jgk+2ckdNI$y~A zF8AvFr!`(9?*EG0c}*te;Tu0seXZr%-(8RDTwR&8eX$t1Y0o3$vyXp| z7$`l&TP1hWAXdrzZ@e`-7iZfUt?Uze=%CTvQK1tri8bX)4rA?#i@$qpXjR|fQEuA( zTx>jT-hb9oNS-Kh*7&!>h>a0_B6Rn~Y84(^d+X3vmpxbB$nG98#Phn|#Wz}Y_WtIV z^yHW8?)^Slv8BycRralh%FY*ahACQ&Ssm}U_HX4ho18)8M#dIRF&nUmCq=*M#~-#vREPq6m+rfruIm;E^x6RflGEqqzX1m+sK(58++^2KTls%Y1A1gVZasGY;?}N#l zg7D;=T@Azk&M=h}_iD5kHZ&;wQZ}056?aJgQ`IjU>0R_mlMcFMwUquD z|41(8*MM6yR6Ykw&n&#^JL!y^_lgBFGb3&q)UX_0D5#$DWU=c5XPIv)c=9slo1>}J zB(XnDM*SVGsBbu_lw36ZaAb;W+Q!!f1>fRT^3qPPn!0i?cg-)~`crGusV##gXDL3^ z=h@4uav> zo6l8d(7+ZO=SSnFnk?J1vEmBz{JW@Hmz&4Zez0>ld<>rH;_%_x(i=r~Lk=`c)gG6a zvi^Cg``N+MTb|XvTcPa-+%b0RdQUjqCTtD8uoM7>aSw8 z&7(asyeXl+_D`#Qz`3WdC$g23Er464sf7j_} z4Y#*&3Mx*^97~G$Z8Kz6fZ;IJYX2k8j(vY)6MTPPTPyR@ne~Zp@_(GnNl~S6$A4M< z^d_&&WkcPfhk2uBnrMD5dC_V);{Kpt;+!(m*x;*WwX-GfAHAl@iV7;9=^=B)Yq(1K zlDGE`I+(nB8|=}r&FpePYy*Wm^UG@GTeJ!v@g4G-YM&^wyNnE+ua&m!_@Vb~dxH4l zLCf8f#(5nLGYWFZ&apZW6FK$Ovi+w{s9aVmY|ylJiaNRIQA*SBIi|BcmKc4yGHHzR zSgBQ`9rG&xo_(D3Tgm3wS~=3dJ@ zhbw-K_bjkUd^M)E;cm-?H*&+wFG+uye)HD8kjr^jbilRXX}>`_vtUo?XA_G zoPKFDF>%`Z@pVUBy%|hTHk)&*?0}zVRmS>Q%_r}YS(E7Hu4O-lDj$0C%zD^}7|$JN zb!}>-t`?-v41PPn(C|x`wRPPow|D0@jSL^5uzk_AoN&4AI}N@3>X$e6d6smQDxv1< zYGOMrXYRC|;_>^$pPe?Xtz7X()vV}}%!UDGquj@4O}5n=Ecs{Q=^Kmm@*LyjtS+mK z%-(5lcFyP+yDTdI%XX!~$FI0lHSRmTNH6M2c9~wibY#f$fhJ7v6LD8+&5F(%x+Q1L zU9x+b)$YW^aqo6k-8yo0{XMb6>UFGw^Q%V>SpOhe<3xG=@c4HskNvZ@G9UPqeOUkG z+%o3tv8*E*myVh$2dmZ_lzm-NmSPh>_?B+@rp8@9=UOKgT+TdMI7I4%n|0joikn_T zu4_7859t#gt7o@8ozt>Fab(E)mpVJ{Zrs^e7jU)y((Rw-DgFDe9>#opaNFJk+qC6Y zG54Kzlv6zNC5G1!7`d)`U5wA%gh;)XrfXt0qvNJdm(Mf&F}rH@p~NbG=k0q>uNzv+ zK3xCj=*5dtvLD~XuCn2Mc~Kp1Yk2o0C)%+*IMR@jkPw+!ai^ZWzph}1%)`}DG{Y15 zx>>K4ZyuU)S^rw=nOrsg^ai7`PZIas8;~6QPGSA*;Y;uEQeKxXPU^Gv*vMN2bA5+f zjJmpl*7|bZ3i}nNN&RCISL~l{`IL?vf~4VTUh?5ea`PbSO2V8?XA1-MAEjunR&h%)=zzoSDk-zYL|gY zzVzrtR}@Eht>5kT=loL#wyU@N?8*TD)o|LINzPXOJU$i$K3ema#tIwr` z+8v{}^wm%M{HSSdxN+#n(_73;-u(?|E!8n!a_4afJwR)&eADh*VQtecFLN1ja^rd8DHE5a)2Eq;V77f4!j`wxrN6`Z6!{H8S0`==F-3q0c<$xJG=Pt6K0Ox?YQS z#DArQ?+S~)E00!QtTCN4^2%dNli7U^?3XW%cyH#M_S#Z9I$TcA?q^cnUi&+-w>PM| zT$wfH_^h%?R27+p*}H-@YgjT?m#c<1=TyEqfA019uj3yD`huwIU^=PvV~yJee!+PK40@9V0(^|fv`&n>-A^YtCE;bz*CDKUnslV%>=a6355 z=aAa1>kszc(Memi&3W(Kn`N(>-Zr|ny7!&7KlFO6+Y9f(BO9J_*kS!+e8px_c*l1s z(_$P#4){mU|8eB5`4{u>JHyVUU0xWMmc%w%w>+)luw-N1&&=(8-3v#~aah57a3hU* zZJVr#%<);3(T!Jj&YK;*YOIlTR!Q{r6Rez9()7Z%p<-OmAB->4UTX$bYZMzMJBz1{ zHhdi!u+gky|LF)bxksnUS3NC18#YUPaR7Vqyj4kKuducLXwBNXVVYh+RfzbVGlwUB z88gRmNBk(~L=NY|gkjE;p87ogI%RSE*>d-@%FE;WsMK8EetC+OV)l^5rptYn4D`8q z?^ANqG~a#Y?=&~gmuvlNKwT#>qvX)HFIBIt-4{-pur{)4#NgLUT(kRXt?EC%VS7#G zh!va%SJzdCRgHL?>#p>7{AYziudg)$;~yV9_54-i&GrNS6Zv0lH(P9RzB?{$*tUMb z+mZ(jeb>CpePwn`Jhygv*tU_zL+3Gv`Zi2`KXPlq9n-^<(o0{yK7AiV_paIFH^}kK zBF}iAin*hAoj6=G@LFCbdlY5)CClZ5X1T6u(H+IV5>ZthziZ-jJ73<1l8ye36W`|r zyge@|Gp3*E`LKcKvSyyWu5QoXGSVbM?hrQRkY<%a{j?K$` z%Hq^-%FnTXVsNu1D~2l-XsW@?+22|{&P;Zwxy;a065~crEUO-Ecw1iTr-RzINivYS zZ^)P3UMFZP{S^)MO0M`zl{D}DT=iO8B2#wI6SYD2cFvuodUjUG(A--Jl3Pae_W5M) z4(A3=SeCq4?LlDka`o+%LssWIO@B0T_qH>u-j8up;ol$bRhV;Z_D1x!Hyn12)w`>0Jk(L`-45o^r=K^;1#erNYb#5gl-lz3seG`Fcg;P&>akum1!2`^ zc2+FBY5!$$)>!N6P?gu$8?uZ?&r5#sX7Bt%b1qFe`h4LhG4GoD%crtTDo)maxahR{ zghtyM?)cmT`=ePun#8d4$F_qds5WS>7-*f9a!jYHCg8wHcgM9^C5a zs?f`2+ur>eQ@6_W%lF~ul$OpMGS=Y1g=IMnYTMpjd45xVptgp=)jb+DO`fF@w_aVd zn(@VGapEK&>(r5t?+u>RNGlo=aKVtW&N9lcsQQV2lS-7cber|bEOw%5rPu1_r}Lek z#n!LPoil1k>fDd)4>r6BX~~}!*q=BXYMf`(q_KVAh5c6}xEhB0JU>@_S*?_(Yc|(d zL-(Lp+oh(fGE}?Wqo0koR&O~sHsnard)Hao6ZV{2FsVdmiecnB*2{D$&myVDWxjzC z+jc&jcC#_;)}YTHSH1M+YX+jhscMb?WSIVqzTziz+Hk3oGLKTUKxzJFMBqW$2q zMwXWhTPfYAP_t3-eNUhhl z+Hz(qUZ#()tNyeit^Dqafsf9aF3&!~9A8x9q89LkVUU0JN%_Gc?TXZuziPfdVHMs{ zQhTscDr7f(+|e@Qh0S97`VU<$Wwy*<;M9m#-`2Ky%oph|AMlgzTJ=kCoVbXTH&3j@}%t%Y4&U$!uqT^T~13eYrIzSCWEQ3d_p% zhb1h0_jXZojde&`?3=Aa8t(>vIpf#&@WH478wx!<2A5t7VAKY;&u!}0cFMLb{_K>1 z=dayot#)?4G3d;dVeBkrPs8A>YpaqL%Z)S^H_S|D(_Se&Z$CeC(fKPz{Z_d)N$-ED z+hjKS#QxvYCSNi>JH0$mcIf3{XYYHSzh9m4ee?Cg8WA_u6`1z=qc+g3sT2 z;k>LY{MeL$SFf{XjlMi^*vr9_H&`+AcYTfDQQq(w7+j5pT4@hw8h?j z{-mW}V#S}ktH-~dIPcPam*;cj3g>OO9Q^ggmvxK-_v0o6eX+9gT(kdi`?d?;Y4Zko zuB>@*G_sOZf3QNBJq)*Nj6Stu28D66=2kN%&DwI|orv@dm-KZsIspb zSIq1EtC#JIO%ANj`g`@_^!m&@uiox&e9+!NwX^6GF(Iwyvg6V87o+Z-UuM+&WAoMz zfesc&b(f{>dAD}u{6{+;JW?6gXq&2|v+Z2`p5?~XdvE>8^?KE!aWm?2-!Ue$CetwLtfr#zSFYW=aqavK&sQ(k-T(MzW9T)L=gl@B-HJXIzkL7l z*=MH%^x<3V^S2&cGyh#t+Q%A&{#oC?Wwx|rO`kl!`j$o*>!I1>_rubT@O8eleEM_u z{HgQzJYP*XbK3X)`!`SC?khgJe{ksSixIDiO00K&``Wf)>-6fHdkO8?Y1#*iKgzCJ zdg=7FRST(dE;bTdTJ*gBqwH7&873tGW)tNtX#ZmQ@OUTXMFxz42^sZrtNo za_4twY@-hBW~`aDppVn-y%QdJI*0b1eQxsV(MN_1TqZyL&@bC#_U(0fZ91R6jwmjT zn-d^^_RN+rr~1hcor;bO&xzC6+a5jipw8E(wn+@*qU#OE`nZq(doIGeGI+e&U)`q$ zRcnO@Nx>;XW0Df!6Es;_@S!O<-KXQHK&AA0+*Ahug`(aI2tE>C1cuVL7a(*{naIxo zK!hh+;ghmO^7J4t6F$KfhfikWlWegL03*m29OnpMX^M`cP&)H$QO)p`pX9W(aoOo` zx+6OIPH;%FDBO^aDuiDb63umm+_a=P@@Z4i3@^w?$`}tHAk2)8NsbrI@)2akr*_Zr zgB%f>;!|VO;^4d}5vrpQL|RHpG3OC z_gp$+(Xp{O8szPU!Z>$y?fO|ioFe?NABqIB(Y5EN{BUZQkNM%0|M)pS3;`eX!(o?C z`U%VS_^6+uK3_n_M{7ViaptN=b+<{HwtK+Dlfm zGwBqiOdX0cMbo7XiZ9abN69D^Q#W3}#f78SkD`22TQ}5NagjEkqB3sApTA-2GF&*$ z6xDH$;h3$pIW8Q1imFeE7{iAGu(}knvC(3XzTSmXn?vDH`%zSmQGVD_Bq+fukYD^q zeEeE*O4y$D6wW$jmjeu-VZFA?ftFD2W<83S>^f!2fo~&RH~%g;v8h3ve^ZabkfBgi zW%MW%i6HU^~V{r0k6{9d(6gBUr?LA*`?;zCs@${NGe4n9o$`57aLube99p6vj9h zA7Q0z7mi9lm+}%BmjjvFlrn^CZNAkH#Gh{}E>IugOV9d_{9}CxM+>f-vIy1n)VV}C z3iw(QNXie;AKpPSZ;}e%YmpW3Wq_pw=1PkY*78ewmueD*&>Vs zZq@FzK%CNB`w0!5?au^Ss1+_8#FuQ4zjb0%S!xC8zY^$cU5eT`Dc}hM`f&}=RRVn} z$_G-nny&=N>so*-0U0Z$Q_5nY{}>d;?AVEvvM1uITXY%XH}n%@?e!!mW%{`kkX_2V z(!YPhrU1_F_NmK@q6IVAzdEIfA{QkQa(+}h2dtW3QjY3&m^q9!J;Ou_*xPhM^d{~2lw0cH% zDz;GQI|7-EZYB*Mo(P|caD$^-Lpm~%Rf=bTPIokjWq@5ICs3jY&T%v_7FuO;mTRCt zoIU6c$EtEYLm5IlA*>0?Gguv{QA~gse=;7BLR*C&Wd2Whun`x*MB+kR@QLqnjt1F` z4ES6lSOxevDv4!fM5kt^BxQ9rAt^N{J|jy|FKNHXhYY+^;fsz*aYA|lpAZ8y41MCB z{Qgb5<(9_kM0+PBV2slW(tAkB~cJ|k6-!C{OG#7bPgD|3oB2+<+E{cc=B7-m?B*Ili6-beY ztK4WnrbwYRLz+w^+{>a1)QBjRl=6p&9I7u3{^cn&z4Src zEuMJBFN=l$kpsUdbLXHyL3a(UAAC;~tcE83L=`Q3{wy>MiCFN!_3lg-~GvC_Xi^C)7M4RF(iLlUmdhs#XZ)E`XXzt?UVP zR|sV$fZ9Mk*9A%qH9~R@mFfV)RULF1MREb=oq7yKvP=!7YV^Y}%ajoNG*oe9jkF8o zbT$tm!Qz0q5d?Xd8yrf144#W50RQR)A+^E;#=RzrN#^R}AtK1pfr|5S#exKiE`}<= zWC_z4!W$RC&2y-e08YY$3iEZ6D3X(`5$PR2J>lJQS&(}mL!TNf(v$(h?2V8;P#D?O zJwhR@i=|Q%0EGd9lZ@3vEkUe{C#)mfN|i<+B2`c@nKnZ--KrCl1m*M; zMf;2NsvcIx!n#PBQJ1nL&7n(L-zPvbX{(MFB8xHzp^$?+9dKAEk^{O3OGnoqhTbNi zJOCw_O}l^^B0T7K7C`l>L89FHPkEA9OEXa)34c+78)`)?sB)wGB3Z_-MI&EDA||33 zgqT3Dlb@tF)uB5sQz4WP$P6JjLrCFWcVT9y$u|K69WA-hvy~mpdV-kM3Hly`ii{|I zYKZh?iqv220dy-EPfR5D!e6@J2HFnF+GvVMmhl47$O@5&i6{mkrp~rUP;I;8>e+UL z+zcT#uM)v5ba#+}`CqiXi$)2Dvj3n_+7PFhNb?DQa|AckiX<6mzr9G7vAambM6{5w zaA%WasRO$g@7ZL8&pbc`sj#(bQ1<_}wQf+hYim20K?D3FaCVT`WD!-Wgz9B}67OgR zl94J7DOL&c`SHB4->ZdcGwSQ~(i#;`$RQxTKI zrikzv<)Vr^azygDBu`YQSP5y9){yMDSEtiE?C&2= zI3<)7JK*U$oiOzNo%ghnx*agIz|M4Otxi1jfzlMJ64gLKMOIv)uR^$n5>-)Sxht#y zhz+F3$~r+RSYLIDxPpW1U|Ei=w+cAuf*jC1v_TYR-BBeqVSCEw@ zg{Y7qEiZz@9{4SzMm5wzIkGg2Lyk)IRzY!j)Qt+(BH+$i2zMV;fPg4UP@QB^MVWUkp4e%W}1n_-jsR(^PQ6j*B?n*)zEIOi;2(aji78j%e z-KZSGt~YZM6(W|HefqN|Q7K}YWw7W+82}j+lmX+K+%9(2LNNo;rhyHWrG{%DOol>C zF!ar#To=lWXcS8oLG8xYo%bgF0WySI=PHZ9BV~ulMqr+r5(+^}AYjmHvI2~#CX0?j z;ToMqScnkN85lb>fQ^a}(yYuWNDfjJg!~r{mmVRN64X77N{Q{BBtdDR2CeCy+IzfL zjB(vzsgxc`-9b>CN{R2D+)Gk-5K^+2hJ|&91j+636Qi(tG?h*nPnkmL*CV}0VL?K# zOz6>+-r3qq1A8MA)%5?k8ZbV+{CeX@FEY|gQg8UgD3(3ANTrPFUN1~Yd;EGQsQDg6bz1P$W-^3{C#@&H?0qYLZE6u%)r(W3hzoGaa z>gge!z2p3s>hK>b>7iJ9Q6W9~B24L};l1!xoH9AThnVzIRE#o3LWo%y_GI_JZZAR6 zOFg|{_}8rc*MPzX^bC8YsK+Sog^&NXVD~C}X>WHBVf^1#(PM=6Laq>}XxNLo?j>m= z6d`I7d|#2Da8X5=6eYY7gz4SlbGpUry2USai~l$J|4j}^5NVP`trMq6itCa+8VPYp zX&RO@aS0imDIrdi6_*w#fZB3&U0gy>o+NA%S0Fd_;(Y|*2gMc1Mvnxo4!bPk4dP1T zG-0-sGJ%s20Ezdd(!kvYD*6gQ2*Np36#_`Vi4~rNct2G^4gH0<^wns10aZfWKumB) zKxpy^qXZ4FE=!0@Nsu;4h)b&r?__Agc4`RF(qy3Znu1grEs`pF6_=%xs07*qBkLsp zz5bU2|K-4cIq+W&{Fej&<-q@+IRG1p@Dt?#N$Hs`3PbMy2~sq@=Y7wzJz@UuQbaNL zr1syWU=IlvTk%3Yx|-vA2Xw`GhB%IwcxZSff;JQTd9+z1m`wuoTnm(*OM-bMm`{QQ zBtQ?C!iv;75<5tOLnJs%f+Hk2N`eLw93#PT5}Y8xNfI=Y;1mf?li&;q&XV9939jOR zPByY>v$5|?n?r)RB$!8n`6O6Cf-(}6lVBkU;E_nw+QlSTLV~3vSVn^7IG|UN;2sI! zz$jF12@dELB({zORXD&rhxKiM!h7?b{X?ICQt7$)nuo9X_*#IkXyQqs7vgIXz82$a z32ApJ31G1wesnm84FzyY849M7U>XUglVAo3NN3YYXVXb%(@AI3NoUgqoxKnjpsgms zHWKV4SniY90}?zV0eZ>_n)#6gQwWEq;ea-s#AcA#OcHD(!A=s?lAw+Rhj2hYOkzh! z>?n!B!>FjDlO(Z`#7>dm6A8YOU^3~7**KuDAhDGsSVMxfBv_Aw&fXEz=ktRo^Z~dg zGEPkJy&b;V<0}VW@z|n`#`m%KikHi1N%(#&zNX-7HooTIEAC|)?qwS8SsLk58tGD6 z*Ri&PFm*2p_LHEV1cH%wg~V=?;3)|Nee#9GT1e1Nf~kZ@f{{=`VjD@YodocBFZ}3) z{WJml&yc*kBp@S!_MF7tlHeT)1ne&-EM7eu94t6 z32uX;28;?lb{s`7?TWUHS7$6xWLveT=4{zMxN5^gHsgo6+cQwQ^xm1ec~A| zjnJl!)5$Q#lV&oQY1%lwFTP^>$;_9ggHjL$bOW4+1&D5e@2$|4P6TKOzUSg}9=c+x zlX0AgOe(%l!&khfL>rIqiO3LT&`olPGN2J_;d@adVuVvfhlnXoF~e74en`t%IK>iQ+4zciL9@p9Hu!3bum3d2 z(36i88s-|!5#KxEt24f04${2vy)V87qbqJL=}poqOe;=}#86}LbsWBC;j8FC#cG;{ z6*LViXj;#q+iO1vSWfh>fb&9Q`=6{Vv8%LlGD-z%coB&$Bf$z1tR%r&609ddB?&f? zU<(Phlc0tKM2ph|+N7%*5g2fRAr@F*fz53q#fj;qJtVP5BoG(@f%gAI643*z&|%+5 z@Ph9$m~i?l%#6rIS7-64_JEh-?w5A_|#|E;6DrI(r-A zCAHIVDqeD;;Z0#PQon)*ML-zk_WJY29#N;KSdl62Ga*ya=tQ9CHfW=}I zCa_zA+O8l^p~4Re!avm_J2S%~DK$1ZJ1*WLIyxgZ(bn25IVm+e*DN75+X9|L%%q6I zP|~uqEMn54GvX+j8L=cQIVr{>AvU&`;`Tz+U2yaQn3>nLnqEMFoX*P465>Hj zq)@W*(&IDD6H${gv*O?pdb4b}q>84%Jum>hQ3!Wnvji`iKm-g2eq)f_3f@I9kHzU( zaj|CU8S!!PV@Ua!=*;-olsG}DtT>VZ{3X>wI@|+8V$Bla)y?<}GkB!|-mAuxjfs!W z%7!;g2&Pylif&=*G9fJ^E;A`Vo`5B%r6!ogrDeklm?R-HD?0{3!Vtl?X36Qc)+CPG z4J8F_pAefEogplQ+0e-ac&`(3KtzDj=!^uo2TI`$AGiSq05{T;lH&z2ii9MMN|DCn z6N#93KPru;LerwssB|SCnigG;MpILv>Cz#YK~vM!qscL7(vYeFDJ)$EO+yc&7Bp45 z3XNt$QyoCF?+;f7jn;>5L(@UU09Xn_X*!Fh1fhI?n$iGVMvhK3hiq{fDou?JCFlcG z0Ft2B!X+$d00Xd=wEhs%=mTl$5K{GN>Ny*EFd&t(3IfL3=;J8piXs~K|jFCh6c(H6qA6_(w!S;DNwBn;ss6K5kN^( zXwVcO5Rse&Xh<8CA*5Q+lyzxTJ-T>~IZaxfN~JTz#Ct(|s}rr39*t^7({iLyb!l)f zrBBn+!4)9}i&m&grw(C24GacdJP)vIAnfL1)Lzg(>xSMOFe73u^f3RF2hh~}W85mZ z4hxz-go+444{nuc1NHE>hSW`ndD8NG|F~l!QVm>SekaFb5%rX4Azpp!3AxF)eDZ z%>2=ftd3Ueq5cvyTOQW{DL4d*5sgwvC@eq-Kr(gVR!<-ghPdx>?b7tVSiB$;7)3L5 z1dmiqLYxk_IHc10q7WE|0$tLBxGhM05DEqif}RopZwd${Kn8aeT!9=a-IPXCS5X0C z#O1SSH1SNpOdk#ifsb;+a_xal+t?AvCJEA`A?= zc&@n~?ojW5Fe^6SpBu?wvMsIctnICAt?i5`e7>K%s~>vR%G;j{p|>ZW&#P|Gd>jM4z62+6ySeeXVS)bMZu|&0FK!4w zjPDod=F9g8;qe&k&eG5rD9p+oBlv|w7KRTG2=(?1;JHICB0DE3GYRw|gU^r7%F0Lr z9Uaf-Gnw(ZS@G}^2TMJl_R_#h9ShDo&ET)Hlm?`MPOmlN{ zBY3$@P zvw%Tf6buVt>WlJ*q0d0v8H`^T6&y{_$z4bA^nj;xwnFpG0E|{(HR+x5u-Y@c|oDxet`jq zZRQ-d4TsI)SX*1!+p(=|>}{-AHZ~kPJB~Hm#@?F4wzFc#n^{@In8~HU0I;;>yD?)y zIC^={l<5&3;AVdVYEO^MDN zXT)GKnYl(LOdK&9R3y0Rs6Ht!J~a!t1k#%y4;2N5z$?al_*w?MZtU*OMO0W>TOw5g zd=}JBbeEOA4WuR@CybvG9h;E`r#NJ!CZ#4YQ{po-qZ8td7`OvSYF1O~7Wb@t_e^ z)2V4msel;tHA6HRYz&jn@65!C8<`C+?ob{-bXb5J-!0HThzn{Dy&N7I!42YDVoLvs zS6+dkVI2lTXy?%Q#bbqt2m|Vb6o|MnIc&C-l^vU9WovI^ZD(g=&$7cr1Tm3@H)5bG zaE@>ts3*PEIR?xv?QE<$)>gm?Hk)m4XT!4N*xK7!+1dbB_*vW7+JhRg_pm}zN(7+m zXhegNQ1hS0PM`*mXIr)0#ZgBX!lzOkdw zjn7C;VMbfpTU*=OSzEL0tn64E8yiboOB+OiYp6RvC@jR?+rtBzC*Utgdk>3>Fm)M-g8!)55_tctY1= z9(VU;K=-=wgF<*AykO8$V@*?%Qjz)s#f)?Kj3Gl9mbOL=6JR(=0@4CQKxCX80S<~7 zb%HQaX+#c)u|SrD{N`ATkSXYGOjracKTH}FL-so;Fw{Ge@9iJt=k4Yl2A@^~7by%2 zDqQ{LbnhreDFxDz#{>^;(kW7BTuxK zQRIh;BRai91Kl|Ppo}d=v~f^IbV5orgE^o>=Rz$Y8K{e)|9Y#!44hL@QvM?#mKf9+ zBw4}X-n=k=0Jb2=wM2w^c>D4AFwR1GAhD2!l^+%`Vc%G?*ifVJFePS6W`Yre95d9B zhI-Tw9BghF_+X*nBOxHf3Q-@8%L^6Mi8~SQi5!TyCpQACF~Ye68L(aKAb2eQFk(^yla9n}j z4i5;1c*hI^rHeSX9iBvbbVeqeM}>K5#g6Q$UO-JIPl(RT<| zS2r%Q-=4fMG(>>l?!_!^t?YrNBHfSlH<^F-^oKf+Uctwt37jA@E$ryVu1*><^?@Fs zUZFq1+2k{jffkv{x&{XNb(_a}fNKH-LqP_phz{LBINfDT;2yx@O4tCc6K#rsg-~hF zrgY5kv8xG#1)yxrt?g{U1F^IO7sQ^$h8q@#jixjl8}LW$Y^_0)$HO$<*4D4%95sBL z9Pl>O)z8-rTj!2G4DWO+(C9+L3hQ^mZKNBR|76GcFmST?=~)>_De$xSiD=Ap&eM@Y z&CgDS!^h&_JiE;7WF-2c0K^sS4GgJIf&Yb+D>#Gh2scb2K~`WUk!Qrng&8>`4-!SS ztVa--v!O6%zzTCiyu-Zwd7zX5s6%l;gE}=w*9l9wA0;k622SgVjgNyO&~H6@O~}B` zA<)B4WB1*g=f;PbCA1f>y%6z2t_Gx_-tS~mIxGzL$`+CVjDYnJ;S`#f#jc7*AR}bT z%nu0j`k&NAm{&+(1kfN5diTI^S1^KvE)W1RP(Uh$1_s+4JS|6z>uQXW;cOwKJ2Ih< z0VNsNcn}4^iWHc{kT7p(v=@(yCUMAd;ra6dkfjU^fDXmH0tMjC^8gPMu`0+Lks|P$ zp|1oZiHN?nImeo1Yh!B-lXXir$hoyOnvj6+&0*Wyg78~{0}h@y8_nPW8Hi3tclTI( z;aS;RySoFFP|f}u-u<(xW$^hz#&&8qa1+6)4r60|h~=r9dxkw%l+jiFb10(v3GHau zV^=*Kq`Rx9+Bu^WsQRuPvoyD6S+Y6y*0$j9S=(FM!F-Lw1}=fFuwvVDIN*|7fwHh6 za}^lM;6mrXF(?dU;0(6rM4kiuyaQ0rpgzI_4h=MJ2%Ou6QuslzgXKl1kMTqCAQAY$I3nr;WB(;1J|}HlJcA;b=t5!P zTtX@`G<9#E(^^)=m=ux zz}VZ6=^^d~pa9#IZmY?dDPVG7UaxjC5@*E)#pD)TBguu~BY8Vt&CXqXVgxXg`l>>=L@*sz( zyIyEQ)<}5n9a$OfWpPw^E?zIIqk=Z)T;Ps?b7hUDREP#Vo3a8Y!VdYc9X2A=D=;Js zWQ$GVhJgQ=$n$)*fUD$+N+pqIUqVU=_I#d%a$uamK z%4jRA>r51qJGl>!5hRUCicN}6#+C}n3R(W|P{@eN?9`-Or0fynB0^xz6s!Vj1DVHm zPLBbUa0dDUFIC~$2sW(Av56^Zafp7TlDf>WyKIjE03K{28!P|Po=~!qQiL;dwEB&- zen%^WTaO(qA+vIZV9X)AhnABWqP!teh?cO0Yt2{`d+U3&UlWRYAGHto0e%Rj`+3nY zMq%d!c`aRLZ~|kCtuHEyS8yyj94i*Fuc%O`b!9TiGaN>2b2gg=E1)dcS+arg491>i zZ*9l6wX(9ZwY0ai1!orARZCk~H$z>8TmZ~<2Gf!ao*_!ZGAf#gkJ0|0_bvq{sORP- zHekYoUYSS{m?F-I?q6YH<_lrE?NXr|vuHG;Q3kgL&z9q}jih`G$ zAhV-EBIXWl8bOv&19o^1$O*6(ZbNq(5wL2Y#<=02>_Y>?L)?(D?$#xUZ^X~~H;ewn zy$uZnIfR)rj8irXykwXRLpU7e7!Q_IKx`g;FusUc!Vw;6-L?^qU{#HFwkSZV=0yiCfi}(~C z;2p_9{#&QO2~?-(jDyej<%I;G1;H@bS4NAb;BBDl$&!)4B7^eBrmw3}hJ|mOAu!9H zqU%NBohDCYb%l5rT^|#Gv(!;vkd4<+ukbMUz=#0B#%WjiWC{-}7OuzQ1B*==SgKL0 z(Tt*F64Ci2fT*eHd}tvIt8KLJ1Z%}%A>qiQ0JTa)s#6U8C^6u{B*kYivF*nTaInCa zmK>c04^u(M>+3r(;7>m#J|!(9Pah2po}ULY0~G#HF6`=pbs+W_FKoclAnZEv)6t>H z$?>TetB|eT@)%5n4Eh*&*>ir?*{#IZf`fp-v86)L-5yvVj|s$QC8s4M;im*ZY5*^C z8u<+2l$pmt>(WSM0>OI`Zlgd9Mj6^gA<`>yZoYs#(C>h!L%)mcK?^p8Bhd;0JRA}f z5rWKPYIX{6AR{^@6Dkw>W`bKX{}maL$aH}AH|sJ?3EgJIA?%z0V*LrwX#PibpM=k* zAejbMB3sl8cSJYYpq&_@V4n6LhchuFgqRL%U}!ruNoJ*cpe9whHQ95r^AN*uN*z7 z9^ga6UD3=MdGEMiS>|0Qr10ESa$gM$;gg9 z08mAu-vq&n@WPSyPou13gmvSKa7|oj{=qLt!@1L}q4Ch&59Nm8J*Ez0h3$>NI)X@o zwE-s|u@;ToPHT^))ec!k5k)CnpYEzEMNNX6-*8NlVCKwqgEjvU^57NmiJ%tH?EmB1 z9Mp@@cJ3I$rmyfobHT4j9XnWPJ5R8s z+##M_2RJw&{BbZlfiI?H=B3~rL*zt|?Ooh-yj({#9V@rz13>sYF34+#uIw}|L@YS4 z$3-@;g^vJq8E?QpOM6>eOTHBv3s7G0kh-8Zu|?~2y8rdFT`<&;GX;Dh%K=O@_aDMw zF`WNTY3BhaWp(}i!36;;sHmvufFK~SY-iU>FG}x`q&LqF4qras-ep zvY#cPimbCfmDjqK^`J001w&-R`i#r~Cu0?Zoe)EcMD?dV6NhPgFf8r8d@mZ)Lx(Ah z+a-8nz~Tf}6D#xbI_}r3sGh7#?`(t@@+KMACH-bShKl;ky);q?l9PMVhsBb!~UzCF?v?CWRN>fAQGMTtdx?5=Gb%ZQ4(6Vr^Qa+?Dlt#X& zs;ERJV`QpJo>&yg5Lq7R6jg=?I+K%`epRHF$XZwZk+J4#E|PV{{)A7S?ODADlbo4O zsZ2WbPGP}UD6i5WWKT-i@*;VNKT4BU3VfJSv0^SG)X;LM0rUzet&>m9%Cmo2Uox>; z+JumaT3EKQ%B@oCkEGWUDO$P!vRLOl57Z|IvO*>5d1GBzkd`oO+2<*X$*3-xPHH1U z$0F(2XDoGUlHn|~MlTi+@bO>R> z!Wslwo=QeJmK3bXqQ~;KO6Q_|4lOZkRXU5Oks3QpXE*#IRCVKtvT9Xs#c7ixaiZsB zSx?Q9&Pa16{Znt={I1xQHJKt|gvNowilXnBqMW=a1|B)mzM@-hvYOtH?Fv59u_tL>pd=AJcnu|!(iR!x}fj;v@!)y~Yy3Db&`<(Z_h z)mOP02f|y`*jP*Xm{Dav2ZSN{}a=_U+M?lpBn-!k`XPSzkN*rm+V(|E#s@G+BRxm{S$ zt?6aoMvt02Sr#Dp%0vmH1W`g~vn}5IjFqVZ>9d6iOPQ0IB9oBTFrhQo&3?%{1}Z0$ zmO(OI+&7(c_kt_UYfS@PWw?dXrv`7hJoFkh{1`Ew@|;?n(PBAS*??vFlf=f49yD0y z%VaIX@LTevs z(Al@fSYCdC7ixI5xwG=23ueO#P%{$ECzrg-s}r3`rRt^MwAN?Qv|&v(v;dMe<8&yT zuJF0YF{38w(j4(kpRL;7-M-GN>UVyUdDD5)$dEvt|z>hhAx%JQnpVx7M!u9T^r zGFjy;)BQ4$Q>k-iwpP;|!g@#usk_?Z_fo{2Mj4@^wlL`(g{Dx~8oBih1Lh>d?DS7t zFI~Nb_CwyTS|~@1>auEXLNxpur(|vqD^oRU*1<|jRH;@tZ51(64OYa>e`Z3}`e&1D zp4KfIeu{Y$9ibmNYuU1sBznH!BdnW2&T2gi)x_Gj7R~+JK97no40+c_@#`6HBea{?saT zZ@ikc_`M9VT<)a~%A%PEmp+Fsd4R^?!5<)d5L%yRG}ObTUsT9&Sp zM#>@rFOxF&=xvNdiC&hIti;=lVP!({ZVTRNkzyv9%zfVKDO;N5&zMnb6Qc$1GGCH; z%_^-OyeYYxxx`e(CNr!L&+7Pv<=NSt;_H1;gZ3Lh1Qr<}PH(?<9F7BC`_>bL3sj zg<|Pt!3(A(5>zb*2Zy`q!_)XCD{%BZFP-j?mC1=@|8$9T0%hVO!~8Wt&7m*_r*GVa z6)YIDX-|d5WMSQ0nCHU76fp`>O^Pe&q^U`>5U<{9`N}v+eyJWBh|EBHK$z?f=0+@G z=(LMX6jP^FIo`jR5zmIB|129Y^v~>8fN@nO z1+0S{r@@4YL&r>)c+8gtep;GFjh!;Rdc^oq<4iPDQ8Nvd_XX|KUr7jcCyI*=*6ewA zO7bJE&1hv|X<<>CPC%C5e*ST~->g{;b){)J1UW6+Bs3f@&+o-qj?<8ZWu1jAzqfc2 zvfP(*kmYaIDahuk*%`=^5LhtZt6taggxNP+L0_WfQw%Y8>-wfmGCT^(v@=P`&GmdY zo<_>mr9yWA_D<(|LeCJrUv!VqJ8F5?LkCPgUE$NK_P$}Xf^i#`lH={ZP?&RAKO5R> zd6&SWdm_CC>vTqAVjs(A&5=nQCuQuTjHi~@FH4`Ij?? z#>kY+l(EqZ@p>Zb96h)fxeiNuUvk<#8XXB2A| znt)85N;2vzr;U=UlEXG95;`fPs&!GWEj6Zz1X-;oYs|#}N>324Gj=P~=aBlmU6&Pk z*t+$WBt9kG%fr@Je&_^W`n103qEL*IX`-w}K3T5y}Hq)%wg^s)l#n{P~-X0@R{qttnWxMBdzHvu0l#nSea&hgj@q#%$iya$eu)%^vF5YkS>-{T>O;43O%M^#g(LX zu=1G}uOcPOF~Zh9y-w^qPfMdexya(;Rzj++Y2Fr9L_&u+77#XM{FGqLlA(t-&Pm5s z1bnC#z2z{_!&A## z({$Q=Rfzvlvr=AIC2QU)%Jkjp(kfZwmV0@5<#1hpV6U{wdy`=`mpl)bMRHZz@yi53 z^drOVZHJ^EYt4&4caf2j)T^8#n7J7?*jG@7#r)x!RI$!RWNJ}Eqa;+ltZHbe)?Qk* z72#OIruHH^0U~O%h?+Uk@&N56N{f}W(+C(t@REyv^O6p5|Z3{i6n>YrhvO4Go@6rNz&(zp;^ zv0T|E+XN-EB$~;0tPru^;nla$vdf+yGB4y`wFs$2vFUZ1t(1G-8&{JQtvPPl6VB7) zQk$*JGKUtgFUM4Q$fW4y|L{9m%on!%N!Id(i3~L`w&+0m3dwp9c_(INsG!#S&<#AA z89>>^B@|a#Mj(S|jH#0M3bowkECgC|q>0w%PW{fF9u8}u<-MJex{^lz9FeY)MLYUU z7Sj~TL{rZ}+Po-`??pY)uBnyI>Yi-Ns8<}P{2emMr{q;pEpX9HoNrH+kx1KJ+pDT? z+TO>HP^IRII|ElatAWv052tN}olqO<0$ zvo{?6DGi9OZLV&TSEqGV^Q7TYtmHA#u%T1J1FX>RwMHMk-lV^)18D5NvsB8Cyt9hL zK*QrLpKMnm?-^P9=aWEb9k__K&M|CpDk>%YvigDHB|706DCveL9oe`M4$Fh}?OoaJ zFYBFqv-URJttgZ?+RBT|a}Nek>Kgl%hcN-#iHxPID%97!bB-f21y){(GuO#;lwQNN zXPo@3)=A~zDSePGrc1W^7$UY^r20+OUET}na0+6MQhLF(Qa5jmE*n9%z#)L5EaVWSTAdE+RJW-2_ZM9 zS>tf+#w4$=cv7 z);Na80tcl}w`sC?b)#DB%ytx+$D2uq*!pI&-gvmY73=TkNuAVihgp?mow&5Ay33W! zAK2a$qFIwkWTPdKy32|$>wigjlDNx9pCoOiMBD(BNBbkVcpj-AeQcc_Y!oEHyt$SbD21O!&9y;wyL_!D0j=M z21+L~B-vy^MUH*P^ffC9jt@!_o0^m@F^@7e+3Q3aOdCshfG>nyx(md--b z-ilG`osvzU#Pk@GCaLXb}v}oGGX2tc$n_&IaDJEN1 z>5V6MVYKhMg&t1kkt}T-5 zE6RT5exJc!v5rgE&~cMxdCpMTB3yPV*S>`}1{RQ(zPS`u>FR*X`XxFV&%El=Ej$HT_NXGKpG$9dYjD7Oeb_dWm;$b7>ozB!=>Htgjt(MI)GlaX@r_)DJP)#`&hd-xVVY?~B6Y@0DNon`8`?QvV;o5aK{M>JHl z{#m9oFMYJ)^04!gheAJg)_0&mWBhO_nV(EYbCuztN$5@|dl-tZYN|3uS7vK;BG_Bl zDPh*cb_5T7kH!U|>mhEEURu7CYh1EKj>TyF-}YSzjwL9WM>4c(H>?#6G15fQC+HK$ zO3~40&bpVCrEKzwV0U*lYiX5I z2Ti_Gv$Qg7%}BoKvkOAftye1}YZyy)L1E@qQ|Zi)_GR;$%O0-~i%_&BfftCywXlX( zOv-iTLmw}d3WvSvNkb=3OtoIQf2)0WIv}OTmF+G6 z^-Ak8M1yuIx^DaH+YGs)^_2x{w!5m;{2l)M=1YHi@sGQt2I*09Y56}={_9nve+KQ6 zzOME41%t2HZoEjosA9bYhl8f%GaTCnokLaUkTu(lQ zt0}56_&g-}CL-!)v&zb~LI05c2^sy9;8SX#%4z)M3T_AOGXA<9u5Ul$%C=Xu8*){f zHQNulx^?v*UmWzOmj=B&=+AFTJa!p>MY}88uG#*oHdnV+QFEN*uc~dG`tJ!^5F>&F&SXMmJ*$3Q}Y8@UeOLxIBD(9&X3)@y&wNL`LCv zL26PSJ~8rp)AR6S^6+Ex@ELjdae4U6JpA}PygCoB$-`@#akXEmRCBIJ z+ie%|U#UMk-NUIF>@!0jl&j=2t=L;O0Jd55F`I zS8LP!Do9=4911B&U73epm52W*55Fc4zcvrQJ`Z1)hu@Tk-`t?ZokR&3N|^#P-ej^uTv$#_f=D>qW#j z9}V(5#VCCLPvAQ@<2^$X?9z-+4}8~V{KCLHG~*8j9uD5ky7zwIyJa!`v2RG?a9nV+ zdj+Z6nlS}(B4-{RBG>F*fw;(Z73guQIj#adZ#BnNpeMlQxC->V*Bn=Yp5dC~Do8cY zUll7zHP2t;&GXlI^ZYg5Jb#Th&tK!s^VfLu{59S@e~mZKU*pa5_b5sF^mfh1tuuw^ z^7Vu~{AA&~Mg8y^^-!)K=8<2UhyN-Me>CXN^v@TW`qayL;K>t#7nIBr_D?Julss4pw7YiuZQs46Oz^*mJ-B_)kT#pO+PD6J~2Ev>8^P*z{rR9P#&$({v8a$b!5t8A<OaYIRQRZ~N0(}3d2 z#W0(m&-?SZ6)F@Cv4lP+Oj}R!Zo12uDq(gsjR7?NMsu7n;MI1 z%VeX@;)W)PU~r@7OWGOV@@P$u_?FBrEU#)RYAkQ6sI8E7ZcTL+^~DWkwRMe6#kIBd zO_fb`!KJ>#O)F4}c)|Ts0giZC5YO-T=Wl2TGfo#B_j!Mc4 z>zkVDC8?T3p+u^@xUQkJv9Y9nKwVvBV^P(B#^44=fftq(6_$%f#g(;1<+3eBNmWrp zMb&^>JvykUs;;T5uEf$z%8F%uWo6-jMmY%#f5d{XPW%oxtz~mo)c69w){Nh4ecf+_~bg#?|yh8~!Fsq@&2;q>IFpuyMIOSqSHiE?ZcA zVzIVYXeZ>D>*Tv4?};ea-c1#TYTi?De$%0*pp$*1oWERSz-O$L$GxX6k$l|S>K<|R z_XTu)`Ven5)PRp%-QT-QjaQNUY7B`767Pq2jUfIi6pSVQlj98d{E_?ncXWw-#?<*Q zx|#fJ(sTAW1Ivj21oCGQpM!KhpZI6+*GF>h?~Bt-@OF~#27m7*zMz+ZO~lWKp5GIH zvbTYEi1$Z+eN4O#;kWUb%)z2ubvVid+sSXeoUg$YOef-Nkv`pszm9^_pZL1*rgskU zcagEniGOmm$^Vde?}LqBNBnQn57g^+;y>Td_<5$})u?M(c7=sAe^+Dg+?M!Y>L^dRE>kY8ho&p2HHM;|FVCSI z?m+xJ#H%CmelWoOh?n*=e@7AT(cgF@@#l2{U9K~UZ$f#yj`-|RCVxBePf;&66Zd?1 zmH15P`HuKFJo4EA<-*ga72=g9J{)$tAMq08?=a#`_&tHR>z_^hc%;vH#0MdLE+_7K z?j^n}(*H%`?{&BIe2cj2`H;Amx9w#7q?e~pHSA29_+jw(SmJk2GxtrzFGd5tgt*s> zvx&b7`+PI;nP~8ly&;?^%E4p*uHm0-K?#4+ECqRQEA>X)?zflUR~H5GR1fOZ)xf%_s} zgYWwB2)?twPe)w!T!zTKNPH#i?W+;5#drO98{a)W_utRJd&Ixl)4-?1-_FyoSdN0( zM)FlJ*MBk!$j%Y3Gm-Fj--v6x9zVct9vJcZNWOQ(8zLU}LmDGq8Ob+AybZp4IO|Yp zb|ii}$~mfK60d(k!CoZa0qMr|Zg1rKfh7Mn`|WkXc@aEpBt7?~4a_C}(%uFZ z6MqB!nH9u4p#N|h@%mu~&L;i{68=KsZ4v&}#E;+Cz#8JeKml1xd?5OJHxi$Vc-=;P z#zX^bH%1`7_ptm_0~?7?MZY4pCtAO5f&G7+hJT!kKDn)%f!D%yZa{b zV@eFXOI&6b!}UJ#>Rk=|i}-hK417U+8p_qz#E;&`K&!|OXgZ88HQtu^Qncf-y;Au) zq}%Q!zh? ze_@E}e~|dwsCU01J|FGflf>)L{{Ei$>HC}h7l|K@hUit|;}D*=h)=CGJ%1xUrkC*# ziGOma@lT0A2mAaV;vG=$z9oJO!czcu-X4vdVfxz>KM(d~SK@ykY4V+j?+m-KFY#%x z|6Pf%pJaM^5`Prw*^l@?5wB9>ZPCD15kD99>PX@pJDI=3h~I|vI+}Q2q}v4I2c!L( zM*O#Ee`gY}tuTM^w-Wyj?e!hRuZBJR1@SWuH%0dop9FjB{Vy-) zYf*oBzGVu^&(oym-v^rhKM;Qt`SlXmlBk_$GPu)iR*JY;XF5>T_zi|)o`*%0_jl^dmJs%;ya8HweocMFl z^9=Dl&>lTcd_UNkmx(WjJ$#e+izxr^64!MOdc9Bl3Doz05&sFszh4kP_(0S1HStGl zjJHC0^!onCF~-{x-v|Bbor(9rcxQLwO~}X2#QWp-0mQGGX#Vyf-hlA;A-;N)$rlq} z+Qs+);+<=ZA5Q!T$PXdDaDvH?A}%{phHD)0M-k2`#7Co_=FcTOo$G2$Pc6yUqkWu3 z{0A5p%qM;%?CnzG%h0}@M7#~!>obVM+tj(lug19SBI3ozTKIoR{0Z2BtBL;?{qyUH zzctYG+)TVpH{-Vxe-d`%=fw9q%;b5Ve1F)z2T5Mm=!EMx#NR_d?MdQK!ao0=_;>r7 z9-fE)4E?TGNxt87ljr&Qw&RWab3896gTQ&-e)pj!|0(JJA^O|@A^vtdlmC`@3CdLg z?2Y?7=U|g>Py9!)1G^GG4*EM0zZmvyU*f+;dFV>~L6py)#2>)#e#9?1+`?H(d=>Om z5if?FKa%*~u%E+-|7D8lKbrVP*m+&=rkAJNpSs%bX~a7seP$BB4|b-W_^0S^&mlg0 zN7JwC=JaxZ+v;SDT+4}n(BJqe#5bT{bSCjB=og+({QhaC=Mv)cP+zVfelq&)x-L&I z59i-umu?`wuF~XgC4MQ!Uw05sp+E2o;)rhQe&U~FT=Nj|`6xe+68~@)3(wQUQ5;f# zAbual5ib$nA9m(-;(tLu_8sE=kk0QBf1$I5=Og0BqaX4)@te_3{g?Oy7^i$sygT}_ zZ7@FY{Hj8E+mZMu$6I(h5`O}AX)ofPt4zKN@$C_w1BurhWb(aC;GjAM~T<67Pim z++yOthkaW?{9g1wPb2;-v@d59{|xzlA@LVbZdMcb@U0>KJo;&CiI*Y#HxmCN>f>$1 zZ$W!;7x510cilsLBJ^w|-Vyz=M~H8R{d}DGO7v%*A$}^_(dUU5qI|wg{EtY_H;Mmr zgq62aU6S#<->x+DWhP+o4@+OZ?LA7S5fCuY}#+ zo%pX%&N~yo3gzv4B{oQKefbX^)vZd#FwG`&nI36yRnq`A+Q@K5g&*C+Zn`f zN4(A@es$VzTtxgQ=r{h5cwwQ*UrqcdG|bl#Kd`IG-%R}HJ&fN@yrQS^pA+wobiS8( z>k%gJ{Yo$A|A+aX-;jJ4*z+fe{{!v#?}=}Keeiiu*MB0?=T(v)4!iLd@tcree`jq$>w0Hj@{v6WtTjKj+d{=<}sfT|g(xE-^6|n!i5+8Mtg{KqoBJ{iV zC4MZ*Nmt_Up*;5_z5)G;e#Cpi-%{cyjJ5Do5x4i_QmG?}zc$k3hY{ZcRP`OwTmpyJFsHCUIXkSx>w_>dPGB6MLHeg~YExztPv5cs}k0`*sS+Uyb^5Ch@uG z*PTy%I>wck5I+dz{0ia|(Et1~@ke3zZXo_R+T~k`{|4j7JBXh%($e7<#P35pdq44O z&~83N{4VfEiT4G6n)tH^n7@A@{xn0bTzy1*&(5aj zbK*159{rd2XNcGL#QV)OJ#Ekr^77;T+8v2^LVvO&@sp1=J$n(q5dDfS%whjwR+4ez zGZ-f#I}?6A>JdH?{wD0eUgmwm`y*di|0PII*8ddxjjaDbw99*w{sPofc$4_M9^+yJ zE8+K-n*yjy_~S#2!+aBQ#0QQv za2@ftkg>NAzXJJk2l4ki8Tcjfe<1xg68|3Zn}~mognyEF0qp0q#1BOMd5QRF#P<#2 z4}iZ*d@b7L4~X9nd;2Nz7f@ioB)%5u`91Mg=wEH$%5JzlISKN-j;IyJaeI*bnknX< z*F$~{``L};H=?}7>mfDCN~fBhB9d>1io)xK<_s|TBS`*tsG!4$uSP#%H1RR*OwT0Z zAHnb(OZ*YE7rZX$ZRDfx8{_GD#=)k4A?f+^(Z<>Cb%woSyLS!jEz2JX{VabL(v9up zUr`^~4&QE`!>BIKZ>owa?Pan3QZXeiwdOEZHT#kHa z`?(O|WcyiCV&P}|dG1W(Y(JNxqO<+1g8YeOS3B-wdQKz$?*ilJ5dT-Dab7?967uD8 zk{<|r@?+x5+nb&?_L10)TT%Ym4o@#OLAJw#I~hmzCwgwexRUMgH!#5XNaRnzIGyeA z0vKAh!}5l9xY!P#i*y)dw-f!1=ueIyelF_c7~)@bFo14NqUU!A=P@LI>>dVSMicop z2ngHfKaDl{xuoY*C|*o_>_`JEh|lh9;B?~8BckUL-w$^6V&b;1PAYW;@lnXAYlwe= zcIQUo<90W&p7=8p4g8$=`-d60kNDdthYt~-gbaC%_)91t&k%nU1^ETyvrz9|CH_y? z^S6or6yx9bh;KxAJ|_MO?CKZ9??Ji!hIj$WLjl#(dr%>EAbvf{XGh}am73zciBCs< z@jCf02AcdqB)@)&@qWZ#ggq%E-Uk)vP~s2nYkCF~|E{}nUJrk3SL5SJ{=vPCPb1!~ z*7)(n$E1xn65j{y&OG9>fpoao9)2{;IJ!Yez5WRd8;V83KR~|=$(``at4t5fM8Z4l zW*o_s@K>iA?`9tfzYv0KKi?m1f+${ze4ok22aui(=vN#;yblrp(N6TNhh63LxentL zPM^b&zo>qRo-XLOa67W;XbVWQb_Ds$?a1Ab=X6M;K5{!U0{uX4M~>@j{&G8V-vP!4 zQTm*S`o-1jYfIN#T!9pQXmx4S9ed|#bsKJ6fsXU_LM065>jJkIoUzOO(5=X|f9 zY4RNYcCc?8{;%?c|5miWTyAebf#UElM7%issjj)hKLq_uuD^$&-9+?~a&j&T6xZMT z(LWq!-X!w-ARS;P5`Ij36NI{i_eFeB?Gt_t>HHZ2&gEqK43p<_G728DeYh5OnC-(CZA}l`hlvP3+lRj*o!LHY zM7z)F-xJ|v`!Kna`OEg<6eMJ$-A?l55cCt~62GO`z+&Q`qCl-6z7qEBG~)ZB+@4MR zT}1Rk;twD_R}=pp`qvO|Kh3~e;u|^}xRLlbWd?2|e%>wy?jn95D#Sg+XN@zkk@#Yy z&m+VyNBw%7_#a`npCSHDje+Nh*AFr9GVyi&47^GFDA@mZi64&g_CE2;cQwHEbj&E@ zTu*<7c%gVDejdsX z*Y{baCdl>uQP>Tx?@*iK`ri5gyTkSU#Gb}cy_0wygMQZ(DD-*PrTC5JEs^hjxZS8H z`GXL^6NneUU~s*j1$(=aydhlx)@`fxq%fC9UjsEHd%hk2*?DvkuKSX$TBmUJ)lkZG?IrOKA zpM#3!@B6yHJD~g*lKc#`N9DvHhFv|3_$f6O9)6$tQy7w?Nd7$dJAwF>sHfA37w=^H ztBDVQJ!~SrwA$q76E8-EUPgR1%JV72mlv3xvxt`tGkziQ5nYX6M*I!byQ_)&bNcIv z|6zaAb1U(a;qRTq->)(Gdx+0KyUF(d_kB#B?f+fq$Flu@3gwOM|80ku9#pf$9&Qi2 zfohQO`%ymG{{Lv4>0$eSDdNla|5xbuvi)CQV|oVJN8;~G@E6rJ;a7Au!7(I%e6fK^ z#2-id#p$`Y&;&U>kAZ$p&rkO@c}~w?BEFoSFCrm1J^zdFae5wgwB6wJyafrv>3PqQ zCeP{F9d?P+^K^v2S$ZNMoSqw7n|@Bu4k&Lh_es9&hVY;oC;Z}mrl-+95`GW*GjoYw zzK4Ou#OEMkRxn5SPa|G{a^5W8XP6-8`y$jk&iA6uCeQi49sK2d?=sxvIp5zv`fzy8 zD##t41Ns{0@O*>x$W zfqdt3IA*H(%jIwm>^zslHi$2m!_H95o2%uC6sfF8}k2jdvtHukY)k3$%$uQ8KR&_t-G!G${QvO16Y+1rRnIMvdZ8$5+GCGvbFudSX5vT;HQslPFw4te$W zHhk9)AJ-^fA90xPX7OqV8ID&PT=o1k(&J%Jen-S>@Lj_{G~x~TuKHs>8=S*GFXI0{ z;omRP6NkTh#P7m){aA_b`$#x{7V%T@UE>8)9>^+ijaSUi0q1yK5b^(?c%>sfalE`- zslRtaMn63LHD14n_^C$2A^{#@ST`hq4Q zXz+Nce9XPRsJ|W;bub(LayocEDv#44&aZpnRzH3e>A5fBw?sVl_pyk_`nLzy@!HXm z9yBw-eohd68zR~2?V^AYPW7KZnHr4e5EHmx0a12SLxP z#CJc~z(>S=-|Vl5KZo$QMY-_sTz!-Ydi&^n6WZ&pB>x`LC!S}}{PK10hm!nQy(!mn z;y*+>oJss#6p(nIF;%e~@x7ho{eAm;iT`fD;BD%+#5dO%{{wLk=NrTa*P8s^+u5h5 z&-dt;?oa$p#H$DK1<+GMynU7F9Y}mnRP-^#e~bJ&mbmXvF^l+6)YE0eeZ6SBf0U;4 zY8d!SNq%S4m$k$nL_csnao->KUgGB*Wbyqi@ww=j$NMsAc<$?K^6@^{%6;GL4j3nS zzU&8sw*#|?umE=E6SnzlV>A4*J|M8K$+Qu(YZsw4@&)1zu^1hBO z-iJrSb0iwTYe{}X2u&(=FX_Lm#%}zU{<+)R9lkjx* za?*|XU!mXkiP7}b^zn9O0?D^O-tt9cNL4T9K7u@x4g8t`7 zzO;wQze(Knzfauln-^3M=N)L*c18hqfBjt8Uf?dj7U3+7TF5Z3}5PuQ=`o8b(Zwlq)P{=Ef+tc9@?E8+bjXZk3 z&ci#PALrpYE~Hv2?ujJA5 zpFDi0_7(sS&pd?3-?vph6ih#Qk^Cau8$i4}_~?k=3Z@@ZBd+P7d7#(qh-2s;_}So| z4tFA*&nLbP{4(N4puAp5ybSz0aE-6}dus4i=2Y|W-;y5RSKG=@x7r>v0xaxln`d^H=>Ny1U;br0#;BQA<_4xZs z?}KZ4YJ5Fkz9T*l{_eP=eR26!;CmCl7QBM^Q{Y31PX@0ez8?H^;(LIvj=0-Yy>$(^ z=8N_deueST^?CSDh!4TM#830^UlM-=`hDL8_t*KuB=74Rf18K@j`-7KEW*#`;eR52 z{1B6WEf4<-@ym-${_lDC$HX_+n!N9iBKf=V+vg8lejfOHB)<~BKg+{?KH2r$4>_N2aPIoMN`C9* z{9^l=^7osVmy`UDAn)T>mG23rAO4<^b1x5zB0Vbad?oQsszk1{^KgIP)Ac`P;wgWx zllhILCyn1eo_2Y+|C>qP!})R^?&nRoo=phP2PE(OGvXfp6vnl#$9X&A9)2I+yS#_r z-*<8D;Xj=8I3Gsb>z&VYxSq*~*L0Hi`sMQnF7M$vgXG=ci}G+k@4)qphrd3r;N0~; zkVnrGdHA!$J^Vi3;QDLe?|(>s6?j{Wvt8cvYggi%A%8#~?(dtro;M)x^A^r80QY_G zoqK)s{q330Cx35&o|VLRLb+T;+}CYfl!sqI+{>rWi+FergTEU{-qYXbGhE*7-a90} z3VQxY+|&R6h(8DU@AGiqkKO(K2J${{q5NPl{Wu)+3eNY#y^(qNc;a53kI%z>{?+w+ zy<1H3&V3(pm#;y1d>+Ml2k=`-&rtBY^Y9JCJ^YX5;hTwjczmA5!&3%-eV=XTuHWZf znD5=j96I-OI4}?Q_c&eN!{hTD%KIWL`f*I8N4e*3LmoblxQEC0^K<>q&mj34^;9n3 z|Jmhh0!^jXko+QWpLcP2kHf#fK``o&}&I>TF;QUm`cg(|m z-&&Wy81g><0~q+fZB{MYNFJlx;cbUk;Pcq-M-zA$e` z{MV4*o%mzm`x4&_?(<2m-|NL-lD`}BzQ32tyZ$L8@A^?}!*fPV4FpXcpilMm#CQEj z>eJ_f5Uwqe(f%vZSnlFBh#~0=9R#8pFHDCDh@btnBL@SKTG@R}?hrbN+d*jpf z48`v>@sarL{Ta1XO{k547(nT+3l-{oh6dwFy|54;AS&KKdgyK}w@-0wSo3VbC# zou?$d^;#AF+IUve&ENaFfVlT>*F{|OWk390Pu$D--Nd~dZXmuHzn>%S>G%rqf%yG4 zaZl%elX?#7N?T~)Vy}$3=vYs#WKJwpz%n}Z>vdb|&%=;(;g!*~7gdZ6<2BVLW~$`?f3?iNbhQ#N%*!{ZoGzLqG}#4YH4f{~O^PLA(g%XAJR=`xux+d~J<^V~G2?p>e&| zpxh4+8%h4tv;nsvp8kK?+xTLVe}6XvUItu#A&mWLB>%xM17{Q85sk@(#M@$ia5eF{ z`x;n7{NauU))N0&rGXoXuSC3VBiBz|0MgSQ`E@w)n^6(teFjudCG1bUPn~k_=Zqsg&%jRldPa|Lu5;T} zPj|FawWQ}A*tc24uj?U>bH_i;Fv_{4Njlk(?K z93Kx_3>uXb29YvdltFQZCCxd&TUtI4AS92(mxjI z@EhX$A|Ib5e#rqAuiq2DeShOG65oi1=vCr>LOJy3Xr7)$b*ATUB>!WS!w-ockN(D| z#B-h7uIaE4_3m4e?}PLyfL-_SYbVE` zIDzyGK>Ia~c-MZWKR&lz_51o|<7iKDS-<`1(;9i4X2>{13zrL;ZS*_{V79<8#|J z{Ihp6J@L8i$}d9wdXMz{3gs$3w_WA`i+<_nBwvQ|5TDzw^104!S6+(p-=;u*$mQv? zYP|j4k@ywI8}CTG8^Rf%+phXY)R{cL_w-i`pbsQHD~e6NH}SpEFYQmfKl*#+#Q%(V z#pkwbc;>o!hSRCl5CH_}q5oxz24@zI|(xkI!vaeiX`yKiBs3 zAJoz0=Tdl{ME`0r@t@V0e0*-Z>i-7@BJsKH${&IKIh*u!Lc4Pz@ujGD{Jz+`kY7Xc zzK>RXZoB&XXVjPY+;-)AW1Mmu={XqfX?$+G%1=XoBR;oX`D44wAGzXl+m$ct7;q{+ zw_W+Edm4Y7{CyL8o*{k~!t*@wKcU@>&uv%zm%$#!=e8>!bg23JF6p_bjq&%1?*_a5 zFXH!L{QCv*6Av^!@wx5l?-jMi<8#}UpEcIFuM_Zccmev=JEQzM_w~f_x$Uawag2*Q zlf1u=cL4FBXm@%LzZ>C?&uv%zd!nCQO!C)vvGB*|wyXU6HO75CgNJ_(ho&%0H{qu>BhP{o?ZC5>K zqJ8o867FxCwx;I{(gSa^&TUscZ7NMZKDS-@hsPTKA?eu-6E^<-iu;@E+;-J7W{~NL z&uv#eu$%GQN&i9U@BN(kxrdqjy~JOE-FuMuZLoXsx$WxjaP+&LB>8gK=lK0cmERHd zIzG2udB3#$k?U2`^WJph@q3Xfe=piue=pM0?O)*Wx$P={%}~?h>q%Tb*SYN~pX=Oq z#pkw%@SvS-4?E=gw?ESSjn8dY`CR9=EB^}Zdwg!Y@?7V(EBEs?<8#}U=Q_7t z`Pb<0#pkvw&vkCQ@*`m9kED3@fc+ds-1h-Kn)p)mCw*Owr%y+e+xXme^*7hK?aCWq zXX10)mEVDOWDfb8>)dvg&vkCQ@=@sL#OJmve;oay_}q5oQ?`>oa>eJiD_@Lq>+5zr zzR#e&j?ZmZ`CjO^|Cqx6IqcF6#CNGuU*&lL@m%M&tA0O^`xhh+^N@9JyUO2)ab1~SAH?#0*ui;|Xhr5$}u5;T}{$`ZV_}q5oxz24@zOj}3k*g2s?}B3Jb-H{$o%RnMUq zkNlA2FG2fqHSycgFvsV%tDfV#n*N(f{_7sb<8#|p{;ZzHeLbOv|1hNUy`<-&5hm~b zN|&!IHvSuue+CWwlfGA^-ax$cFpZV; z|B3fUdmW$KuKwyKcPnc$Q7U4uKctbrKwbWZoBetkPh*=?aJGy z<&RwPJ`BqDO)E{MUZU_XM!Wes@fy_McZmD^>U+dzqg=)3wyVDfVqEY!$IXXA6*RloOZ<8#}UcSC;Wdv`VU2Vvi=IRkF5VJw99)_c92XQ;$qcNWY^PTW{u%D;~3HS1c>Xh)SJ6HfwJre#?C_uCm-U0T18pW#= z{vJ>K^ezS(iRU`EUGsf^)a#`rpX=Oqm4CID37$#vxz24@`E|&z)g=D}+Lx<{KRMFC zb;SRPjJ<{UKFF6li2obo!Cw;p0_nez_)h5eZX$jc?Dmtye+2vaEb#-|8+eKM9fMNDE2-Qj{OIdn=)b?cQy$w=91V^s{_>wEG<` zxQRWPc%%Wg!+yRq%ts=>BkC8jKjFE~ZP)Z!g>r~!B=TKgfRQ~3Uq8&k!}c@Rx$UZd zr-3GqVv*<>mNw4z^GLLVY(Lk|FnPA0xz24@e}`;m^7HH?@pm6Yi0$VG)h2i{$>%z^ zUG+bYhUEg1-vbR1+s|>xD7K%AOHBdW&r1*j zXV)5F`}sQR3)|0)u;*+)d!QV${rmy)m+j|;us>`+k4E~i{q%ax_S4gc?WfxZwx6EP zY(I0I+pg*PAi{Yp*}ZiomTt}LCn_S_&#zF?*?xXL)AYpWwyVGUW88Ea`J3z9c9oxr z`59h6xf=NrpWCkTV_;8yO!{-3+phAH^p9K}?IS7YPZS$qJ3OwFab$lY|1tW{Y==jp zzVs&juOMD*hu?sqMR7^=--!MIZYTUmq{AT6-`Li`2;!HcK8_*Y772iEYofpM5EDf6 zobXwD7>C(PcmX=pjimpaaR%lRuR#4>O#CJEGglB_-r2zE#HU04T;l&kxxJXU@1t=A z@ioY(Yl!DMw|#=h9Jjj(t|$4EkdQwoKJ9P=_YuETmC5yxeI)7G3U=u+;zKG7JVX3B z)dt?;w*&cW0J2PX5b6rU5gETL;M$G4HQs4-3{eDKDS-{ zy`zK4cO?1$D>c41@m%M&tDbsPl!HjVZmQ|&NBm>hlQQD3q5>UC{Hc9S&tT$5!QS$E z__w>7{CJXo3gfA1#J{OE`S{#+jn@Tf+;$C53U&i#B9ZTceln6N;a8vo*p0$-6$IISo{#iLaY^*Nit;&t^yE6XUBlT2 z34r38=&6HU<@A{bL&)iKL3i`8Bl$ZA{T6OVreJ)*?Z~Nhrhwa#VUXu^coues+mT%7 zwrhMJ>}&cDrEq?V{@x(se?|S`cBB9a%I;IEq~}PKLvBZ&g<@_;+M=Cpr0`5f z0hvqO_pw?`d>zJFD~SIF{+>p>ti}N6`$`0m^Zl;fO`h}pbxd4wzL%mrbH4Wn;C%n( zOw-T#{x_sQ=X)2lcO3rvrkEZMe_K>g4u9WKCePvD8SM^-|5U__!+&Vk+~NNP`k7pR zKbUCph+a~DN>Q(mu-ggmQDtBl@joKnP;C3lN^KBx0SgrC#-fwbx2bY6#i;dH)phRJg|+3h&vTu!FK!*aWw#CPg61BVj# zeL&bgY(n_iKIA&LUDMgm2WR{64#JOQO2ShMJHYng0wiQ3g>wY@33G|>hVr(Uc=eG6 zRuKO?%K2%;FNB`6iT@D&nG1<8Lwc?zK7W9LHN+o<{959VcQ$Y%@e`1Nw-L{EZo8)c z22_Z9NWRl}0~?9Ig$nlw@zJm|j}w0f_T(Aje?kR%p7;kt47^PI`+f%ABz`XJ|GUI< zo!hSQ&2?_O@;{;;aXp=lcy%QG1$_)~eg6W6fc5zMCalNb*Vv2n=Q_7t!hAlLU? z=eDc-LDNk!*Y}r7jdOiJ4fT%eyGf@~T;Ka2V0XB_|F)-bRD-1c<~p}s!?_e5z&s`L zmmh97>T%!aX|F^8Paysf48~&OUBOope+c8CGl>5OhW0$-llC=m3GqeHe5K(ry?a%4sbK5muU+r&tZY4dfFwVV`_{Lh3zlZoIXgAsZ_r-XM z?f;BPrU%)U*tfG#-q`+kf_+0ZOXM#ZVtP;w65fdP?`^jeJ{;{h+y738Z#l^yihPIn ziJp~6he0HNHvC0(P2`{LYJxl-++1uN$&twCI=5Z(>$yUc=k&Z1`Z+znL;J|-S%vs= zdL97##_9QA^ET@|O%2amN81ff&)r~$IX$}$Ge zaK5)e0&u<`-r4kUzK?~!obR`wJaE1rH86L0a-G|*`E@$#JBMcm$}NZITZ|VtJaw>> z9G(-=ULzVweofC)4#%~!@N+rb33iXm;aNyvuGe>>Jaaj0JI(ZSIeZ!6=W@6d@#S*3 z4vM)P<~p}s(>d3)xm|3*O48>>*k>+>pCLoI9PWvFaW?6hh5`ekg~R0el;A6#c-jgnd%^qDYUQ2c;ZEB;3VxVXBSrI6TPCz~k^N zf=-o>!*gxKTcv6K+Pny51woX2mEwRtp{%u*~%4Mm-hT3JdslvLY zOH+kQ8t2s(&RVd%u%WST`K)=%7FOH0>NyLV7N&CEsjaJ9(s<$)oX)SUUy{e|yg3UR zb8D3l+Kmu~MN1Yo&6(F&SW#J7Ut8W#Qqnk}tiGzaArhHW-?XLMC(K{ew0uGR(k;o% zS)k$BlEk9rOB(AJE?By33qp0vmn{>K>c$fr7i>wce&PK2wF?@mMPJjLS=De>xTto? zvcjS*=+EOWf6}-E4_IwOgZWb20$<$G;^mD?PBLdDTX5#$%W9X-HR;kVNaqS!%j01| zYPo!E{oE~tB`f6ll~xZOHe~dq>f(wm#VZjiDl8pPx~24T$ z3YbaUQcxByTITjptz@B>k5H{)?ZOQ&#M$*YmxQa33b>`)px$aBVqPVHi^OQL*6)sq~tg&#! z*eU&%F3Y55JIsRiu^}+Bl*nd z9^JQ8?Echka6dbT|JtW)ssHMiUa|kD%kP%Dzbv@Uc7Mh;xW6Tb`&HZEenSrTXKsW0 z%{knkwGHmy&f#AB?k!Ef|I6Y2oNaL5PWp*@#rb!x{BEiLem-vO{=98)@9PF*_vdee z`=L3)f5A4m_j$zFe;p&WH2%K+BzFIUZE)}VZpZE~+6MPm=7|5r+u(kE4)>SjaKEoG z72RI`$CsbG9W(t7wF&MDhT&DhTk2lNQ0?UZ|LR_cn;a$$g!_NL4_p<>#j-jk(=sto z{>Rt&vrV#>22L)u-#T{1&lIM?!v5Z@Q{|URyP%h^pR!-g{huc{a=HICJUWtY($CZ^ zai1&vE3p8z1_`U--$(v)_!Ivz{uhyOecj$ZyWtbKSy&VQ$^9$X$YW)9bE*F8*tw&b4IR1CT|1V*1)c^E0_pYng@ z!zStHY^nbTZG-=tF;VrurvC+xn*VY7_u2;kec#NZ#7%s)H2xdl|0i&)@z;5&mZtwf zFmPwZp3C=^`oI1$ll&46)PJ?LE%kpr{4e_-{a^QldAtek)qkC5YpMTl!2c$=_m7sw zzXlr$`}+s#zm|oT`ac-Y3qE#_@!3-UpL)t9*GKkW=M7uxe~~s8a-ka95Bb|t{}*jG z$&qlW@z=a;ssF>_KgVL&H`2U@DjO3bbAIaaA#(%>LCh6;>)&ENQ z-_rO`MZ@>M*1vXtH2>rJcgQyQ{|fx?mBie>v^4&yKbhoZaIf({O#Zht{wX{VSO@q1 z(Ng~}ga3=rE~x)U$p4o5zYhL)bC2=aQvXxf2z({nss97zKl^{aFxDw3^;`Hq3gK6# z7t7uV=Iu-nl0Q49?b`#jPVCd&`{x6K@qJY+`S_XkYnK?xcX#Lb%?w-ROg~?Qd(VHr z$L_z88(^zkMnCJ%vR`{`CH`q~oXh>m=a~Bg$V2*>8l1=dk9DvtS0DRG{<8a7dE7q+ z_Xm51Lj${CoyYyhI#`pdW-Ia6W(GP}1qb*u770It23G99+J{{3Z@OS|E4_d8`qipo?G$%lRWM( zzQx=>vlaLIOZal7-?ZD!{SKl(z95^RVR_uws=<+KntddH+5HK5+;4#U+Qg-OVfR<& zao_n)lW*LLd)==YI#Tp%71t7$#QHS|35*%YvA5L+`a#vlE?q_YZmZV zAgKP=%YS$8{-2u1|MAb7!$olKAMW0N>;7W7;{PT5-vmMRzfu0Xd-s2B9{)GNf3_d) z9%@rp&@e@b6xJ<{r`0y|HuEqeAwU~;nUqa*7?a?@xSa1^B>K4n17rjj@-Tb zulvlZB$vN-&zTP>hVEVB-oc;p_@92${Ex>kbHx$+|FO7NCT2M6dIkQQmdq`8pAZSS z%H(sugxWuLzbD*ht%(tR<6kr%`X(OP7kBUBD#_!172NmOiu);f+^>iGu3K?`avt~3 z!M(4eay1-&T^8nXaT)!52kyu26w~Ii>%{+DdNdB__zsci&WowK0dbm{oSIU3(U(YXRo$BOO`2QT;q@Ssm^7#KY{2#BGE0_9z zvixWNm9b7isoOu&zp2#Lo$%EL5e|}ypFf-``ttfu<>Vh92k%o`d;XC4Pwp?< z$w2)4L7!i@)c+m6H2?RrkK`|>RX+dQ;RW9sxYYDtCI4IM|3UD7YtJ9@`9B-}$IlNB*}o{y&BPTYLVHFaDRo|M>aCdE4Os$geHn zTYLVH&;O#sto+5#A1>Gi|2OKyh+O|``VSmr{>SOB&#zmW{!hdItv!Fp7ym`@|C104 zvp?DwYpMUce`^l4%*I!X%imy&e?0$rsVHix|7+m?)}BA)i~sbY=Km%HUd#Vw+u;Ax z@V^P}{iCJv-x~+p#m^ru-vNu+KPPfUp3s~A3uM%avS{b^1XS9?#DL! z-|Hyze)E@c6rAcX6Mq|GX(j`stLg zyWblMR6YBxw`OAj+dvE;?-Z6R|Jw`avA4Qkj}7mBvX%T-^|{=SpKhT#MB*1;lpLx5 E2U#Jhga7~l diff --git a/out/src/buttons.o.ctr b/out/src/buttons.o.ctr deleted file mode 100644 index a2079fff99d1623adf9517796783c6a17aec7146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcma)(L2ra05QY6IbMewskG<@{sBKJiH(9+CirNqbTo^Xne_s%>n>KBh+Z&iS-y29# z<~7N)x~{9X1BRMtD+y9FjaD)P?-o%>vsRKMA?y3{n4gOByk8omIDq2)A!R_>M3}M? zy;yG!>63B2{)BO-rpb;4d9Aaz7MK!(%AUkYt{^NS8Hm|KExa_5oU zeSb$wo!VFz<=7Z3TzbUC&NH#gUp(!A8w)JdAP9Qn!irdnO#kpOB}e`dzr!K@C~Q>W UyY@AOn7{Ya&>N@`UgCn1FSe!5#Q*>R diff --git a/out/src/command.d b/out/src/command.d deleted file mode 100644 index 8755480..0000000 --- a/out/src/command.d +++ /dev/null @@ -1,21 +0,0 @@ -out/src/command.o: src/command.c /usr/include/stdc-predef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h out/board-generic/board/io.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/compiler.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - out/board-generic/board/pgm.h src/command.h src/ctr.h src/compiler.h \ - src/sched.h diff --git a/out/src/command.o b/out/src/command.o deleted file mode 100644 index c2ddee58e6cb4de43c2353bcf9876a72b55c86e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206976 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ⅇloUPXeK?~c!zPg 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 diff --git a/out/src/command.o.ctr b/out/src/command.o.ctr deleted file mode 100644 index 3abc32546a645b2cafa200c35fc6c0c9ec657f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmZXN!3x7L3`6%R{*{vM5XdfT?k2=;H)x$mt{#pmqWO5t_vafAwpgiwF=s!u2eoUR>=m&LgO#nntSiGe`B*WF|g!9%~Xpv P@{e=-KfIC}>%n~ir1>|j diff --git a/out/src/debugcmds.d b/out/src/debugcmds.d deleted file mode 100644 index 655dbd4..0000000 --- a/out/src/debugcmds.d +++ /dev/null @@ -1,18 +0,0 @@ -out/src/debugcmds.o: src/debugcmds.c /usr/include/stdc-predef.h \ - out/board-generic/board/io.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/compiler.h \ - out/board-generic/board/irq.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h src/ctr.h \ - src/compiler.h diff --git a/out/src/debugcmds.o b/out/src/debugcmds.o deleted file mode 100644 index 2cb68d511cabceafd2b786909a2732954fe937d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142264 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 diff --git a/out/src/debugcmds.o.ctr b/out/src/debugcmds.o.ctr deleted file mode 100644 index 17d99a461959ac71963ebb263754326e3eb46bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmZ>9b@qvO_V@L5^mB=K^Ko$ zg3P>hWQ|~cN@7W(t*TZr14BI609QX}e;3yvg@SybVuU0y=9d>`mZTzE01?P9N=YrU tRZUh%Oi2OKr3z(}V^U+O1cQ+(Vic*V9b4p+~0RYNoYzhDX diff --git a/out/src/endstop.d b/out/src/endstop.d deleted file mode 100644 index f2e0462..0000000 --- a/out/src/endstop.d +++ /dev/null @@ -1,17 +0,0 @@ -out/src/endstop.o: src/endstop.c /usr/include/stdc-predef.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/ctr.h \ - src/compiler.h src/sched.h src/trsync.h diff --git a/out/src/endstop.o b/out/src/endstop.o deleted file mode 100644 index b1e298a5f5c8c02cb4c2c9b74bdbdd02dfe446e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149192 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

    HO35>fhYIy0G&veONr0JlhXV zudI}lzA*noN{eHA{*dA%()8*-GKl}IBKmI`#Q)cY_)jau|1ClM?}Pt`^h9yg{44Gk z#Q&5sa{fmlH07V}{L}P${^s||(^W*S;g}hMy@9(g7 zR*?MnEi3td=vql{@^9vf>Ri^H*#eZEnxPQ5!-oWzp0tnIuCpO^!BUppBo})`cLbp z!Tj%=D*o;D(>t!h{} zzlZ;ST0aeT{?Fbe{_XYCc~{|oa7j5+41+j}f@4)M|Fvd|e|!D(o~!WRwUqeB^yjMm zzk(YTcSlN7{`Xyl|6%aIO|o&-{!7o3^VbU-sj!~b3X(*KY};@|Fn4_t-+bMW8vU;6KRzxX%jY#!$PmpcE7+W%_c1{kZH zH1?yY<$nVH?e)_K9YaO+|04X?x1BrBi|W7cQaOJ!=9`B(|A(A^?0=cV*rtO#AHo0I z`25c>^I+}qAoI_Ch4?p1n(TiwY(^O4)?;;L@$`e4G+7VzugC8k|K>TTUouw|*IQ}L zQ%$Ew^EYu^jDK AyZ`_I diff --git a/out/src/lcd_hd44780.o.ctr b/out/src/lcd_hd44780.o.ctr deleted file mode 100644 index e6cf2de569aacb03463c733eb3363de8acec10f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcma)$u?~VT5Qh6GU09qLP+S-Ys4*!z;C^XZkVe}Y+Q#_y7KEBGanpDI-F-PI4+ViD zCxo2q8)mkL-YGDhvs}Mb>l8D%<4Kb4t&LgrFYCG@4zd)OsiJh=eNCd5lqJ3z)Pqsa=4j+CxNzs Sc7f7B&69q>3ij|nIrIgVoO8th diff --git a/out/src/lcd_st7920.d b/out/src/lcd_st7920.d deleted file mode 100644 index a039b21..0000000 --- a/out/src/lcd_st7920.d +++ /dev/null @@ -1,18 +0,0 @@ -out/src/lcd_st7920.o: src/lcd_st7920.c /usr/include/stdc-predef.h \ - out/autoconf.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/command.h \ - src/ctr.h src/compiler.h src/sched.h diff --git a/out/src/lcd_st7920.o b/out/src/lcd_st7920.o deleted file mode 100644 index 6b7c75a20b5e873e828c4b10259b43d7ad3d6479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180888 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 diff --git a/out/src/lcd_st7920.o.ctr b/out/src/lcd_st7920.o.ctr deleted file mode 100644 index 8fcc39530cdfcae6f69e24ba81eccc00aaa906c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 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 z 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 diff --git a/out/src/linux/analog.o.ctr b/out/src/linux/analog.o.ctr deleted file mode 100644 index d3e315e6799fc215f7729dd385a2e6db87a4e0b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 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

      O--YJGn3)kr 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 KiV>u({{IhWcVyoH diff --git a/out/src/linux/console.o.ctr b/out/src/linux/console.o.ctr deleted file mode 100644 index 06a54a5cc2ff0d127b836fe3325665ef4754ca26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmW;COA3G>5CBk*GFJ&J5M1T#2N{i^oB=;{{le|z(YjercJbc3fWW;{9YQ^}`y9dz hSf%Ncrx;^s{(uWQO92nqwQ`1bjh^(Czn2mvnGZd99zp;B diff --git a/out/src/linux/gpio.d b/out/src/linux/gpio.d deleted file mode 100644 index abc1915..0000000 --- a/out/src/linux/gpio.d +++ /dev/null @@ -1,101 +0,0 @@ -out/src/linux/gpio.o: src/linux/gpio.c /usr/include/stdc-predef.h \ - /usr/include/fcntl.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/stdio.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/aarch64-linux-gnu/bits/stdio_lim.h \ - /usr/include/aarch64-linux-gnu/bits/sys_errlist.h \ - /usr/include/aarch64-linux-gnu/bits/stdio.h /usr/include/stdlib.h \ - /usr/include/aarch64-linux-gnu/bits/waitflags.h \ - /usr/include/aarch64-linux-gnu/bits/waitstatus.h \ - /usr/include/aarch64-linux-gnu/bits/floatn.h \ - /usr/include/aarch64-linux-gnu/bits/floatn-common.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/alloca.h \ - /usr/include/aarch64-linux-gnu/bits/stdlib-bsearch.h \ - /usr/include/aarch64-linux-gnu/bits/stdlib-float.h /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h /usr/include/aarch64-linux-gnu/sys/ioctl.h \ - /usr/include/aarch64-linux-gnu/bits/ioctls.h \ - /usr/include/aarch64-linux-gnu/asm/ioctls.h \ - /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \ - /usr/include/aarch64-linux-gnu/asm/ioctl.h \ - /usr/include/asm-generic/ioctl.h \ - /usr/include/aarch64-linux-gnu/bits/ioctl-types.h \ - /usr/include/aarch64-linux-gnu/sys/ttydefaults.h /usr/include/unistd.h \ - /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h \ - /usr/include/linux/gpio.h /usr/include/linux/const.h \ - /usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/ctr.h \ - src/compiler.h src/linux/gpio.h src/linux/internal.h \ - /usr/include/signal.h /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h out/autoconf.h \ - src/sched.h diff --git a/out/src/linux/gpio.o b/out/src/linux/gpio.o deleted file mode 100644 index 587c246570f9eca661fd7daf3a6d098570a817ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416000 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 diff --git a/out/src/linux/gpio.o.ctr b/out/src/linux/gpio.o.ctr deleted file mode 100644 index af2623e9ef78dce69b7f99dea770f7863a3a3955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmbV}PYZ%T5XJo{bMMgl|12gVl!obfDYaUV-92dZ@mrM=roh~}%pB(ZW*(33qHs@7 zMNlN6YB`krd}$l#1PIx1U>xFOl0kK65?aO^V=B6!6MgqnxTKqp)y;!d?{mhN4le>1 z9b84v>+!+yy(ldYQLe0IDb0g4jzB6uH_60c$KMVUfem?*p?osWCLxp0KR6!Zc$yp+ oaa>J~gE)>R$3`4mlVc%{rO7c7M`iTMZcSbUaa8oHIkN(*UoD#AEC2ui diff --git a/out/src/linux/hard_pwm.d b/out/src/linux/hard_pwm.d deleted file mode 100644 index 81083de..0000000 --- a/out/src/linux/hard_pwm.d +++ /dev/null @@ -1,88 +0,0 @@ -out/src/linux/hard_pwm.o: src/linux/hard_pwm.c /usr/include/stdc-predef.h \ - /usr/include/stdio.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/aarch64-linux-gnu/bits/stdio_lim.h \ - /usr/include/aarch64-linux-gnu/bits/sys_errlist.h \ - /usr/include/aarch64-linux-gnu/bits/stdio.h /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h /usr/include/unistd.h \ - /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/aarch64-linux-gnu/sys/stat.h \ - /usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl-linux.h /usr/include/errno.h \ - /usr/include/aarch64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ - /usr/include/aarch64-linux-gnu/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - src/linux/gpio.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/linux/internal.h \ - /usr/include/signal.h /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h out/autoconf.h \ - src/command.h src/ctr.h src/compiler.h src/sched.h diff --git a/out/src/linux/hard_pwm.o b/out/src/linux/hard_pwm.o deleted file mode 100644 index 1c8d253cdb3eb35a31b1f8968c4fc8b06413e474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363608 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 Qu-+=8`0f)HoVkbuZ@ZzUm;e9( diff --git a/out/src/linux/i2c.d b/out/src/linux/i2c.d deleted file mode 100644 index ba51ce5..0000000 --- a/out/src/linux/i2c.d +++ /dev/null @@ -1,91 +0,0 @@ -out/src/linux/i2c.o: src/linux/i2c.c /usr/include/stdc-predef.h \ - /usr/include/fcntl.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/linux/i2c-dev.h /usr/include/linux/types.h \ - /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h /usr/include/stdio.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/aarch64-linux-gnu/bits/stdio_lim.h \ - /usr/include/aarch64-linux-gnu/bits/sys_errlist.h \ - /usr/include/aarch64-linux-gnu/bits/stdio.h \ - /usr/include/aarch64-linux-gnu/sys/ioctl.h \ - /usr/include/aarch64-linux-gnu/bits/ioctls.h \ - /usr/include/aarch64-linux-gnu/asm/ioctls.h \ - /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \ - /usr/include/aarch64-linux-gnu/asm/ioctl.h \ - /usr/include/asm-generic/ioctl.h \ - /usr/include/aarch64-linux-gnu/bits/ioctl-types.h \ - /usr/include/aarch64-linux-gnu/sys/ttydefaults.h /usr/include/unistd.h \ - /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h src/linux/gpio.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/command.h \ - src/ctr.h src/compiler.h src/linux/internal.h /usr/include/signal.h \ - /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h out/autoconf.h \ - src/sched.h diff --git a/out/src/linux/i2c.o b/out/src/linux/i2c.o deleted file mode 100644 index f17fd6763228d8577adde2a5ca792b563bb233d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369504 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

      OKX~=QGu<-bD4)i%A; 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 LPLnthqWS*^wJ6xc diff --git a/out/src/linux/i2c.o.ctr b/out/src/linux/i2c.o.ctr deleted file mode 100644 index c86cd969a61faea136e6dba6f75af21aaaa7dac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcma!dadq~I4-Rn*@pJ}KK?Ah02}Y>7wYR81ay+WUwn|GpSvqaS$tAyF^JYPP|!B0Fn|Ii HwmAa;`fE7r diff --git a/out/src/linux/main.d b/out/src/linux/main.d deleted file mode 100644 index e3cb9b7..0000000 --- a/out/src/linux/main.d +++ /dev/null @@ -1,86 +0,0 @@ -out/src/linux/main.o: src/linux/main.c /usr/include/stdc-predef.h \ - /usr/include/sched.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/sched.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h \ - /usr/include/aarch64-linux-gnu/bits/cpu-set.h /usr/include/stdio.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/aarch64-linux-gnu/bits/stdio_lim.h \ - /usr/include/aarch64-linux-gnu/bits/sys_errlist.h \ - /usr/include/aarch64-linux-gnu/bits/stdio.h /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h /usr/include/unistd.h \ - /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h \ - out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/command.h \ - src/ctr.h src/compiler.h src/linux/internal.h /usr/include/signal.h \ - /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/endian.h /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h out/autoconf.h \ - src/sched.h diff --git a/out/src/linux/main.o b/out/src/linux/main.o deleted file mode 100644 index b8ab0289f24152fa5f5d3c4e0e2df66c23f2ebb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322688 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 diff --git a/out/src/linux/main.o.ctr b/out/src/linux/main.o.ctr deleted file mode 100644 index abed8b80980014f20562d4a43e6c90d9c3cbe7fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 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 diff --git a/out/src/linux/pca9685.o.ctr b/out/src/linux/pca9685.o.ctr deleted file mode 100644 index 83df4a5e615d8ff82080ffeae35cd3925007c533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1032 zcmcIjK~KUk6y8sH7fxQ#M56}|3#cL4(72g+YfAfI4PA?CJK*12$_8OGs0W)YYhK^` z`n~UcC6mW-LdJ2DB-1PhW-C%TMNHu=*BiBPiWyil`fzuDdyGa=bSQgC(|9%^Pf7fo z0n=qk6(?43Z<$=}5XjtlCfCC71`b>LO` z1^;Hq-TC~ReyK3VOKlG05NZi}0SdSF=$J5v036GZqS3 b`+ExnLrVm9dO7=^F7R|~PAwim561ceCelRP diff --git a/out/src/linux/sensor_ds18b20.d b/out/src/linux/sensor_ds18b20.d deleted file mode 100644 index 089d4dd..0000000 --- a/out/src/linux/sensor_ds18b20.d +++ /dev/null @@ -1,97 +0,0 @@ -out/src/linux/sensor_ds18b20.o: src/linux/sensor_ds18b20.c \ - /usr/include/stdc-predef.h /usr/include/fcntl.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/stdio.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/aarch64-linux-gnu/bits/stdio_lim.h \ - /usr/include/aarch64-linux-gnu/bits/sys_errlist.h \ - /usr/include/aarch64-linux-gnu/bits/stdio.h /usr/include/stdlib.h \ - /usr/include/aarch64-linux-gnu/bits/waitflags.h \ - /usr/include/aarch64-linux-gnu/bits/waitstatus.h \ - /usr/include/aarch64-linux-gnu/bits/floatn.h \ - /usr/include/aarch64-linux-gnu/bits/floatn-common.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/alloca.h \ - /usr/include/aarch64-linux-gnu/bits/stdlib-bsearch.h \ - /usr/include/aarch64-linux-gnu/bits/stdlib-float.h /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h /usr/include/unistd.h \ - /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h /usr/include/pthread.h \ - src/sched.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/ctr.h \ - src/compiler.h /usr/include/time.h \ - /usr/include/aarch64-linux-gnu/bits/time.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \ - /usr/include/aarch64-linux-gnu/bits/setjmp.h src/basecmd.h \ - out/board-generic/board/irq.h src/command.h src/linux/internal.h \ - /usr/include/signal.h /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h out/autoconf.h diff --git a/out/src/linux/sensor_ds18b20.o b/out/src/linux/sensor_ds18b20.o deleted file mode 100644 index d4e211c9c48edeaff5548e312da1828dcdb157dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406008 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�!#MML$b;BjJJ5?&{K4@4U3uZ$X+6-%Ot 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

      ZPc`^64gN}lzt+GY^uN{A_vzC9 zkOl^Kf4`=FKm)}Z-j8VN$2Cxd?!^$g#V7`$|D~4vZyFd({&`LPiv%*E3aScj3O+J5 z@=U32%My@hx=dw}NO~ur77&&a3TX0%rwc)VL!Lb@6JC(t5&0dJUjKE+?Dt94Q8LevFUkC`{2EVAmZ%B~Vg`R#+2&eb;5~SZNfpqYwG+PLTG*efZ&eF@|nL8&NlH<&Y zyrU>~TAnHVD&hC`JtxVL7nn9g(l;@Z2YHrTT)@(n8DALd(-a51sC7El1@Y zg>Xf`iVl_jyVP@7N-9enAz@$-9cI6(|+yyj=2MCBN^|rDE`%A;o5^9ag`mNL~=LL2JqvC|Y|d>yXyo%!sGG z(*6ie@CuTzgh7#}E`u$}e+7T}zFnlzvh)l;px8pbp$o(3E1r&yjEg)IIPy>v{@8Av zdmW`#PHl|Eyt4ditCZ(a#C=BcXZb62{gRH6q7%>X8^0@=@?6*35qay%v!-yVvX{ib|$r;TdLKm#+e*E{+kYL59|wkhlWHq{J)otF2c6c|vk@F}+mcZcmh2v{Lg8 zDY-4b7v=Y9`4#Z@bRil#ZbTv@1Q`MzXL}5zV_2JSP~bE?jp4ctGZSZD47>fk`hw~@ zyf~k2MDIAeZ3J;;w`D%A4757p3K0X+&q4WpP<{n%s$e8_nN{_h+N$5u;IkV1p#)Ow zHM+nJMKW|oiHP@ZefAy=jHv%{P4RFSEOphUNKLm(hAs|W0!JiA!APlqyG|9mYnK(I z+_kCQ)D9|mX$K#XIu*zY64%9{%R<3R7l+~>1+s>e)P*AW$J6Da*!Csz^riB9R(=)u zmL#srNI_7Skun*&m=pxJq@;qNupOR);43BnS@|`9_*$KU*K1(l@r{}?U}+di!-p90 z&v4^kuO$t18pd0Zm1ltT{aVCu+y+)ZpqWNcH1x=TtPu^rUyB&XZL2ggET-WtKc+7j zZt@eFGW?@q91X|#%lhnBG%z|R1EB^qW9Z-eJuUeM8W^zsoTmO*gFn&02%mqUslU`f zQLd-lxA%F?{Cf@lQG@@X!51|6R}H?X0S++5pZ7WqjK<4oA>XW-X2BTV%`k0-TQmHb zVa&{8GRueOM5F5WYw)ca81)&?j>5AKYVh3}7@eAtoQ=r*gZk`;H83Lck7~+D&PHT5 z+P9z4XJ*y@oTiLQ?iV%n%Np>gCN$#LH24h-KCQuTYw({mQ0CJ615JHagU@O3Uo`kr z4S4Dk>NNVjztWTu*#A~jf2YAeXz<@P_$Lj%puxXt@I?*eI!5?VwSq*TSFUQQNLH|Tkf2P4-Xz-UB{Iv$3*8r#B^1c7A!9Qt$V}6;5(`*^M z2J8}o*J6@p4R|OMNT+d{l!U)8HpH_-PG(MuVT#;O8{>1r0u_!7pj>DGh#AgJ0L+H#PXQ z2EVPrf70MH8vKCNo-ZcFl}4i-z(Vp3#t8!xzT2Iz~HV)G~&w{<_v_2&o~K zMpOGo`pl?d4J9-r@E`P_GYw#}`yjHQSA%U;glrhW2^cFH>`dFv?8mVo! z{9Y@+`{nn5{2r8F6{&8LxIjZ2n~3To6gG}Y$$RBj1(J-!MJ$mP?345j@~gEgY~3h1 z!j(!nw_VrCGvPqxnL?-Xv3Ky9iPX&&sc|<9!lWc6>Q(E#$?3M}yp253j zF@ImQZk2D>F_(4fnRWAKt=n*{ZI_SXU*E1Jbup#26IMH+oJ3nSm1pSg2ZW-?IH_>q zbA-}5Eh;|fw5Sl_PKzr6E4wb}MCwuiRp3$3RIpLdyiI07K*2jAaRot@hE;%3kZ5gz zf=92srL9qsMnOdd8wD5@Z(b@T7v%Rmf2Doe8f}4!R=OR~Rgh8u zRdGrIbW~a}Ccgr#UP;;MpD!D~u#rscOHzjgUNEx!uWvl4%){Laa* z^m&Jwm4)wWXw$kr1R&E2kTM%-1xuNebeGgC3p?%1kE$#^fe=+$dNMz0XMWPo%t)Jd zOI-pdlDxdO`TAMc?Mx_XM8QE2m{teQBX$BY{vU@f|u7O4prtTy)yHN_AyE zE;Sb9SJ$Mj!`8K@qhFPhG6(XdLy{KEA!&tM!6!_o6~o=kQu18zt9MP9R?MTN6w^7Y zO5RXtc#>~;%7W>f$U|8$#$)1oDRNMLwOMZE(gb6PP!LrFe?-dbkO~^`6!|Iw(50^p z(}__OEXYt=(3Um(CY_PEro>QGqpSZmEn@gJ!%clwGYy?Iyw#s-=AUcuUp4qE4GiD) zx0?Dp4UFnR87?;ROQwU;GiUT9t&=2UCutpHU3`Iz;=KGC2IBqN7}IOhPvu1AbsbJw z!OrI#Ea&9vg!!yqa*f?xrFqHGk9Dws?rBhCf+x&{mzI2iI!`g}9?4Pg*(-5n)AmVx zzx*DMUl*(tx?SM9QOY<_-o^n$`y^|`b;0>R#2Mys8G(ZQj>xa#kuiz?`)Rv_aoX7G zl>(fWZ=I1}rTkAwT(QOrC9Z(_Vu`;*eidk6D)Bk_JuANo#!5XFC1*)~&&jV+l4Xf2 zJ$XvvEAo3meplspO@7zqS82|M#5d)4OMaF9T$H#{p-U3qN$`A?JbhMvUoF4?KXCz9 z5?9};tI;Ttjg8VE%C^27Mzb78n{Dxkk#^f6(GTcn4LLMAXd}QFf!L7c@6nP*F>Oqh zikmzmC4avb`2h`#;PXS8G7|JhG<7AbOI*5E8;oc4+CQzYe@ug)(ct46{Hz9_(BS7Z z_<0SCaBfuJpVUkvs{fLvepv$}k{NyYuWIJ6NgzmbCnV^gzr-=%#g4=mfID|3zp#HF zj!{Um0{ly!*xuYYvAjCJvc0f)Vs36@{`^26uY}va)O~Js`^4Ghtcc38V#{mD1hGeVc>~YN^5zyYq+Z-pwAGD&tD2z~>~wFQpW9em=yqCQ?x%Ee zwpUTjf>w+hQP$RR>(biBVyxorsAe`}m7irhc=srxpup^sW||9)G+Qr~)CZ;r2(?~s zVy`;wnNI-pP%j`uOCmmxy9gI`Sn#2x`PHozeYS+lN4IhPk*4NRgi%!b^xDS4=JG2{ z!&lZ;&vh@XZJ%8Ud$N6&CBYkPZXw#uD-|^@gMl~AB-xK)TqUaTj-oQqb7si(f=1+` zd0`wS&R*VH+>$dIo%G#U- zpCyTRb1K&?L>VZ?NXso$_S=%c-I%6noMbn?VH2CUhjN~UWd2Q@Bf5NUa}i6z_AH)u z77UJv)iN#!cM~OPPvuhBIm8K=0!-a!Hy5MlCQrJiZ|GIH`UY+xom&Z89^k4^H?1W( zP^cV3zkDgcI?-AdS1&GatgT+a6q}Lc4O**nvL4Vuv!>)NeZzD>YeTbiJz?6Pp2vFC zGPt4*5iBgs!TR#bqDh%G#BnpIg!3#&L@>)T3v4*JWpV3e7Yr<(ox^RR7tDIa&8m12 z)Bzt~+`x6eNO2Y7>fdb(Iuf_I49|78g1N1=3%E$w%oyHSUR_$V$sj-mrpl(xV`rXh z4n}Fyj#$e(ix)ARP92g4JjPy`le@fG6nhj=}nf!8-LE&|Qk2BQR)BJPhhgSs6( z!g9f_tn(Jj;YwD50v8b$4&O2T-wd3!ZGgimLJ(O#r({9jnA_f3!)Hi%C=u;C>?IR> zP)z?)Z%rmW4|(b9y_=`JyYBY9^bzmoG&0jCygljU!`^Nm@$8}W3(}8z`{lt&Z?}Xv z6C<7E(s8JHSS<#hxq61l^2ef7f~>s?BP?BaqQ3$Q)FAS zaB8BDKeQlq8ed2q0k4vN7)jKb!U>Z}Z%^vN3lKlZ2U2e3VI*$|lXDNJd(Z_hbqBIK zc7fYz?)pRMAMy^|?d?A59lDzlw(pQM{Dib~588G&+HeFf-HdPE zo<4e{qeE*x<__vFC#33Q>4Puu?o8dXb42@LhgoU-}3}>&S`JIbXt# zWSjBAd5#>gTar3vw_qH+!)YIbOt45E^KQP&+uw~*J8=jQbkIv?eLFfako&mSgMs&M z!BBShAdumR0PhA=NB|_9CGX|KMSSL=Jj;9w7*% ze)QF->M%e?8vBR=8b$B$JPz7Y)uF;wQa*_u&_dH?_}a z9h~3&Xo~M0@4*)e@n#U(4x*Y)zADom1cmxkFkYN4)^ICmwNfw728}1G#du>k*yHM|~} z*krlUm@ML^(y=nD)r&6cL2hU$QAghjjmi|pVyZCfXY#qe!M>s1fxf}cgz_TcW$-|= z=DK@yvixMRQVOaK={_z4ogOPR8nvL|51}cQYH>Q4E*8h?!4#UBStC;K^fMV7yU(u# zqv%(o(?9YEZtHyIEAh~jx{u8c8dFtrgPr~(kHpf6V0#tRVSs}XOWg%j0olz?Hfbm0)HS8oEe=cV6bpeX9<;$0q~Z<9j&gRq+zQ9xzsb*M9w*~ z+QIp`P4FyR8_Q?6w-z&ubz)#*xxQvg(?%yx2942^(jXI;{6dYeJS+JoF8NJkD9@Yn z>`3WSC`^szbK|)o4icBtbYZHPnJ2@@cA1R4p9zAQI)HJqFjAZhsu)?Uw*dE!N=dwG zAgMl4sWmV-m{(m4Xyr5pNJgx`7rEn;<&n_xf%K)4n~m62F2MbzTQjdt)H5~f+J4w$vNR-)vW{&Mx#<~ z0MKhiAc~xMxp*2anJP9WDr3Ru@GxrNXrRNvRJlGX#bRsE&*gjjEb5pl*6W4wVo)vA z>*$DsLP~YO{wTVS|JV#vIa!$=m$l7|M7^bv%y-V*QU!Opf`vK{OnL8%!1pb>O1lOnIy^L1;yL1In5~09Nn9`rK9k zSs-`{?DpbHuzC5yCeh|PWv38p#vr9yn=uOsV>n(5YBJ>^5H@F`GF(EtwY+pW;HA!6 z%WJEC5P&1b2ZOnlr{|zGSYCz3ViDQlf(URuFVO2eZucdAvmjKSj^;Mg-J1ncJ2PE5 zQz$opJF_|BXW~w!0s!~PD)EP+5x+Z^s8%K?gUU?9w~<)SlpN%h8~_*A#>%CV02JWh z(%@43kFqN*OM@F0kTTYn?vhzQhwDELQ4(fN3*fRe~oMsJ09#CQ#uF zA*BRB$qj`4jrVqGX@(ufmCd>Q5LUyqSz(#(fm~m{6OSzIn3`!6XM<^CiF!~dVR;89 z%hO|M!gOhDq}-_cL11Ed3*cD-!NO(U?(7F3AE4cfb4x+c*_p6dyfE1)PZhCf3$=RD z@5k$y+GtVLUdUWrA;seFz4%uBbTK%6Dj0d9QLK|DW&Qi^^X2KI zBvA4gsGvL@=0EJ_7iQUIPD32uWQlMhD1LelK&}MN+#`+^=oZk9wkw8iqu>gp-Nl7q zd!P@m>2Fkfkja<=nW0XW2N+Ek8$c@<@Nt>rC@Gi$h`}HTDLh#`U7YL-M!^deg)D}! z(e?=%RH#h_CD8d9pw04F`7}|Y&}yl#)*$;~$x)cXdxk&)*I@v*SHUom8xu@S^fQk^ zf^Op}boK1o!sQGUO_(f8D)DUjsl}Dc1PVOpel#doFr0G>Ag&ue=Bqgyny*g(F^(AY zDo^WU|3UwOO!#H0H2eqnjg|_JAJ>uO!kulDWf)C75p13ZE<3xulo*)-FEm;#)@m3N zKbAswi<2evlT^hB&>m<-yX%+64fofSiHUSSH>zq?AyN+Jv{OH3*Vi8{{G8 zw>LJZk-%_nY~i|fKSL-`>{qWA&P+!%hzk!Dj!(}_8G3hd4)}lla%Q1xlNA2!_VUV> z+}Ivv6K0C1!JbYR2{$H+mRWu$@Dl)npjMf|&GA^Jb+ELVOI_f(mp9kI&}5$Rsf$=! z%7j@#V50sbzKK1AiOpQ<^pDG`4@;i#^PQdk3HH|Jbw1?3s*|mnsg0u<7W(mSY*9t) z;*ze5#u%6l?Kjp){RuGMQvo>K!bkzM9k{1mZlVlgQLUY>R7d?N%C8HB&671)T?EJm zz%ZDQ&8-B{2A&5`){5gC?k9_xi!W#6_#mE%mr+vZvp1g*)g1FCz&2T0odatLt{8-@ zIDOiWqH@zV3L7OKnFYZ4Vl$(#G`GF7)q@qay-F#CtVD2jb)iQKSSS5~z*q4;5ir zW=HD%;4r{jfePU_E~f1G6pbiMVj%)g)=y%wT$tN@3PZsaa6BW4&ikG<5y7g}TDejy zHvmjyKzxdiVp*sW@54q_~ci(Vt4lGwL z0N$(ALN23GD?qlZK?EH2d)u&7eV6*lfv6x=pP1qR3PKX{d!|s8r723{`3virxvsNa zqf=EGlsTaLt&0J4#H7-hvtg159_w7wkRa!Myb=~*h5(i=(OiJfI}>6k6Fd#Z22<$r zHN8W^)|AGAdJ%LDOj9n4>p!qW8%CNSYJ*~dqg5{>Pnmnwa{AAZy7@#6D=*By7xAcR@a~eU3*%%ojBi4{$eNglan+M6sz?zXaq_P_Y4m759IsXPOZ&c z?A9q3#jKeJU?L;=Qx*ajTBtuUJqlopq6v@=e>9i#hkAN@vVQl4mF2CimBntgG9f*8 zcKH!nul(+F=N8WP`rVbh4@=U*BhcOBweBU${&!>SDF$pJZ((k0&P}hbbuYjqv$fd0 zy1lZ}y}pJ)T-@k}MQ{EomS5Rg!|&7Q*YIU0yF|ZbsWkVxL6|hnZli*pSI4J<-2R}c|sjmv- z9F(RCrCv&4q0q&ZM`GRGn;#q)?8d?|ct%wd&}h`Df`Zr^3}v&1MK{yHH4hv$0j#4~ ztxY~CJ*18Tq&nfaoCKO>x$)W=(SQhlKUpAAf~Eo*3T-D@esJ?t6y@>|rhpe`$7@(d zjLg(){-cljy}-4>47430x`rH-@@__@Pt}gY;+TFGPD3_C4E?g}=n4PeZv@o0%T<2@W2YM+(x3!G4*# z(*?{2q|ivo6^etAYKQ8OfZ{x?Mj=EXOZXbwL5k9Li0czYETtyBY+24QqU zc}j{di3<2i%mPTP=ppbqPP5Xy;%o!TS}1!t-9y1>2E=JT?A$<$o&wZp5}hnJG9}C` z7)Z&0>T8lSkbxOC*w|i$-UPODC{;GQd?`oVqx9a-2-4vQM9P9(Fx{ANGzMMZpXb2* zM|uO_(5S>@uytV_`G9&(KInWXJj%a`pXCToNmMWUk7>I^EW zL#f|ZA#AM%Tke$B(47jIXY(;Z(Q{kF+3n4<0Oq+j|CHpW*Gb} z7!m4GC;=NPkx<)ClsG_vlA;@MjH`PV2AxJO^USuxs^>~v$fC`cmT<6*PSFaqP(FuX zVfc=Ge}5BWWLbtfcm|FfaYf?7=DA>bffJ8v#j0R5cw8v`IpAgiIAA}ET!Rvo{CL67 z<)~OM!iI#Yr}U4+Byf}1vu1JEfbC9?HHN4y0Ca|ZlJGkowW+b$vLV+gMd{`!-lp=T8`HC zq8{o7DJ^6$0xfC|eZ0JS4xf?&qBZ0^(b=WN=xIiFq%boU%;aa$h&b4Wyo$+IMs*5s zF#{zb`Iw+Omc_pu+fR(B=E5<6P;G`tKPUqL#A2h1_eup4!8B(FA#HeZvr%dUIIF z*`dC{{6KGS??7%SH_!(fve=y)m?R-RO9wi-$3UkCrCV>FIxEQS4DJIjyR@Vt)^;b^ z=6qkLPb;W>n$7BSeLB?qP#@#r!w>sy9`dn1M7`m9iFmXUD4#&8SazV-SqHcP&lvW} zSTh}?Hc^2kscrd9qtXIkiBwQ&OsG^qR@+Ji4l*PsH8?yt00lvB-_St5H`hOy9m@6f z=Lh@1PW6JZ>g(+vTs)331}k+*#3W(|<$DPQSlFb-nc;lC7YtaocVMW$Z*Z`G2xcCR zf6Q29z+lMofZ_a8vx|qam~{;kFAC}-gk^F=nDD_q82x*}>Gk)6zw4jD{8EgtofLV( zbP`aW4@xvX3-2lx_1bl5@p6{Fw-ajoH5m;n?&2fj43CH zT(x~AwxFm2I(lj`5log~Rsx?5>o1sczGVok6+6`k)bRVDwZ_1nnXL%)ATn;D2hs{f zD?%a6TRx>1Cygp$=M)p@Ci#0~WK(?N;+8rcC?G{coJ6EDEm0UHDnY1=v~yuGN^wx+ z8C@HpU@aVn6_3M}LL^r!j6z`mvOxe6wCCoarL>9+^Z}o%L#L8lCerxSKk)B#d0an(}*hem^ zg8B?*|Ke!S-%kU(RRwaqreRY84??x9;_a{vpsOp8vQWNNcV-_ENr;>T18;Q(qSF-I zQDA{k*{M;>9CaW2M|~D}$fq#1vbOdVx(&y8piX&F3=N`S5lsx#u7FR~%2Z?=z+;!| zkaDnIN~)BN<)EVmJGN+>D^M3wQdEJ_0;e)j;NwsER)5Djpz^JQbx|t~jiMzu;gECi zGn<_+lmf-chM!sJd@+cSq{&t?Lw#{N)gKW-E1; zMZ3c|TwvteJ#GOoq~{hd2GEkm{RlLBdsSSpP{4SShMoq-a@;7C$pjL2aR@N3gf^u- zg5TOwKop5Yb#YSdOFcw;h9SkoimsO=TXDG6(qn5U~G)wBhQH+*gCjM(LkIF#?(R#xwHZ`Q~P{vqVN=^fe^AyH-s3ESAmnEd>jj^ zXDGxhDSozw-wcdNU1X)ZR=c1~Tb#RqwyC2C%*AV~m?wh2HB*Lc*g6&h-U188_P2Yy zD$k@80ooJ?_s;hu2PI(L9}-i4n5nhWolQ&)&-n65UoFS<>)N0-%FRUG$OTFfs`vn4 zLHfaBrbiEnun^ELfW0FR`S6TkClQxIwmtgkcncrWcl<~F>_dKcx4hKpFGKE#S@HY~ zzKd2IKi-8G>_EbF0{6a7|18G!DVkfGdKv$e->u&g<7>Pm(IV}2&pQ>(U!aQxcwTVC zS2szR5_v_e;;!D5_2Mbe&<4FusDV*gnutIaE;fs-tikHQ4ABP0IMDnMWv$R_0VWd^1056{ zKiv@%qQt2S(F37AJzz}0H40X+Q^4{E3ozK8D?F41tHw_XlVC%*Qr!%@90l{wZBZ7@ z4N$<{#O5j@MvQ<&deq{EMjG}u((j4|OuM|bb=i+q2{m#bY6Dh-xg4T)DC(2Zy%O&Y zyaN|k4yn4Q5!cbn$aUqT;x6K1#+rB-OTdv>t=(&zi#jkbqDlhEc2r5wL_q=LYN$50sGdR_q5eRON)T$lTr#9O zjhXsLiAEXs$>>D6TBe^GTS2~k46dM4WbrB^FMzrT%WsDVXrYp4QsTJ3w^>5!3hr2L ztb-m^ClIi5vTWehLhYO5FYRZjh?YNS6JqN1P{cGkM~EKdMaZU<$c`RO1O;eUh-9Gd zQx0PWtD(tnS7iIr1uhV?9_mk^8F)iP-*V{*Wd%4m#&MU==u`u-BQM#q+C^~G zZOwUz&gG@ zZkEAH`N*kUmoO}<6J;QKRnD+!u1})CK_vfxQ@8+EU3@kORJw|uDQD!Cpr{p!L!sG- zVq2FQl$vECTLw~*a1Br?g453MjZWmnbEOI{ZJ`4z^XD(DEr9TGMT-M{tMk0=BPQYu zw5t<-#2Zdh?iY2e0vE7_&JXY#b@)}7s{zZ%VZ2L*1Ww;G=%yVLVw=p-=JFT=z9EAlZ~3_{pB7z~)*1xRxQ6po z+@gZO^(R;Tu{f}XZs08*tLhZbwMCRUkfn^QDq^fNR9cr5MZ&2J+z^R^8FW7i@`YJg z1nU;hkT%f(4S#S<5ZH-gVM;NXiKA9SlptdB>;^}_jEd3^-P`D)Sk`@uG@%GYS(Zx!GSK`BVc&Pj#^wZ)! z-XKRP<2#G-5yQP2p8I-+ptE znyxw;UrO2~*h*1(8Qy_WG~&CgEqEuLC(I4P$C@^_j4{-hS5`N1$pVMB5OPSz5rekl zQ)=#v!VV-5x_9}Dm^jS1Xc9u#3z*GBr3(w3ABwWSJ)Aq^w_n`O8Q{bVoV=VUam$Gt?I-Xj4#)TM-}fj~_>AYEmPm zpVUmn-|~yKzE}BApT}M^Fp5~L$|}_>Gc`~=aKfVSTV8NkWXU3zyajVANVw=6LOHH= z{DuAG1OOERQ0xraMFYkTGXoie>@s;zr7doTl&Dw3)hu)MZ7fbR|b zRpGqR)}3*&doYAU!HJ*%GqYGEF!`0nM$e2v=7UQ?E7pXa?2;OU=+17G|KR$;nYd}t zK5PtWhy|8DiY`%zyX&<0sI_^FKEjxelRy^dSJeMTjJdiA%BMO*eQ=CsBc|e}rbS++ z0!%1s$oM;Qd~bf6qW2XT>LyRRW^Njf6BPNdD-JUmN_;8@Y9_T*(F>=s{1CSO z4Zw`npC20PA0Eol!kHU_@v{#$Mc9*J>ZGL;uP%W&k!QaItpnr8qQyx3$A${{G6%}I zVv0Qw$`3ZR-LR1NuA6}g?eE4aCcF+;mjP=hTYY+}Cuc&nfW~EQDwP?nJyBI!;-rO_ z(CMS*&Zx~t+geeD*F#r`B8=H9^vp90kxCBiUaewG?b=j~Ju+wrig_0z zd+4749Y%cytCkG0#B6QOlE5H}pM|xv;pI`dd5LE;6(`!y*WJ_*9Uwgt-Y~h`t?i~n-x}Ak zwShIEY@EYzFE@Himd+BoL3kQsc(`dFvc(zrV^fPl1D7>of|tX5ch+??4oNTQD3k-ZXo90mcO1*CQQG5 zN4m}8TrODKSUx8licG=O3?v-_W#}3h%Rys6#I3qMnm*-J@YHUmTv?RelqPW0DABet z-A-xwc#)Cl85bI~u(?+rLTo|BV3V!7ntL#YpYN}TEwg=Nld6(va2Jp&Wn>)yl$*SK z>30$H^0n?wf{QS5ii$uZ(NKQ~+>`JD*snp}WYj8{ATia0=1jC6z|W&9bii^wxuIcr z>+}ux!&?VlJP=86=sJ2?>Z|o^3LgrZFoACo z?uEMKPg=C0YjQN^W9G;bp*WNq9)?FR9Fw6xqGlU@_7Lx>+ACKYWZw!SwFY@!Wl~(0 z7oyz!`IQAx4GRZ@me3O#UJgwjb>J1?y>9p7p!HaZB^c6C67S$lx=VlpXrSN-R~W02 zmPS$AAtMkG70wi=N1rg}eEV1>cw*lnIE$lJF(j)_;7jmfo=m`91iCD)hm!BaG4~L( zCW^C}3CgeddDI`~UMa*Nx@MuFzrS!lZFtB)JbS--96`6GI~37tDk8(QZ8+$!Qfai> zA?KEI!&#Gh;ImjV1KsP-kB94roNv5eb%514m4j zN9k%qSErDI$Fsq{kIhtF?k?Mlv8Jk#YDMm%i{gfYDz@UG5G11!9(MgyUHlBL$mMcE zc7Yl#$ESqg2=7tY79m^8!W4Z-=t2zvyG2>j<{?H$=(^}XxL##f@K|MryCU3Yz(gqf z^!5hn3>9a&lfQA{5_l(pNXh0lE5e50c&~K1M z&@+L|$u{r|!ny(EsRk39VvSo&6)wADLTC)dI$3mGzVvmQhYwJY7QbO*$cy<|g#101 zCoM7q{Rs=f^-*ZaLps(rmyS%O0_YuF;wZ}lAj3V^k^8n;QHnw1Ub-Xj(jBp0y3^o# zYvVxh!m)%YyCS*IgnP6glGkZDs)GLpX&0u4%P15ppolj~`)VDVWhcS-VK_PX+!jiI z{0STvG>T0XY&K59!68XJbp#da4v=u?wX~-xPs+i1J&Pr7n;a$WY{Ehw?Yx!GfZz!I ztcQ#TjCZ2Gj`VWTu@jhL@%?wG{|>kxJpiD?qrw#oo%OxAIuEIFL;7#Lm@OP)TbO9R zR1GVfoa}rGSv)nA#SdvR1VK*s$X#)>4k{<(>YS?+8Ry|hqz=GXXq4$W8&;($noYVH z!=flgTT~?6T~#)^$Z~;RGvXU`1vQzgNDMjfnAIj7oY_y`k}Lb^;Tce=PRo9JjpE}o z(E&Xn77Zmwx(($4ni>2fL6hKKpX`cw6jAkG?+h20oI(XSEy5$zr4LQ{c5gpiZ0+8D zM5#Th!Q^|IN2_3L06A=4#Iy{}*2{^l#S7~pK3C-7z=jTqK_Tt@ayeoV1xyCU*2jk15#01+6|SYFKc5khKr8SetEZ;rY-f zT8|H;sMb9v=hr$f(}8)0L>F2$)f6a??&vY- zG()=x1PE#`IIm`>VmqyR&QYsZH|AhA@iWIl<$36T0MZjo$Yvw4Z_9}})Fnykl;HRW z%yifTd8qutXmO*Jisd=T$yhe-SxQ1X+zg5W+?I`ZElpJ~bgo~RSfC#OyBT`;cEOas z+0)a5jhIHwj|o^<$_NqR8Bw7NaTnBfEbOyc!gXTEEchGe3s*U17!GyvjffAY-?azh zJeJ(hz(6kOC1sHQsp1VP1v%$PdKk|F`7@}4JZg;o8?mE0G6c#$tOOYluKNWP?8QI9 zjJyl^5Ch!hK<Nbvry%i?M~rvltSH*SQCsz#}N(v zKJ3uM=Nw5|bpeo+G4)d?aY7>Lks?Qa!ceLD8B!lK-=v#7D%zk8NFzk*;<~W3uxM;z z04}f;4&N<meFM;8u zX^iJ#2XtGgBbTxb-`r7rK@lU}gxr0!$vRw`4&%WC{YchiUj#oBvTpILP^)PbWnWY3G#$K?pkJWT^t2sayLACNPZJjbq|8Ct816hBY0*APi0DkwMPfNJx;2fcIS895i}{6R}cxp_s zsoDXDaZv3*xCH43I*}!@XDP;!XP=!r1F2FV^O$- zW*J8x0KFTR5o@FXfkG5@K#&U&i>ebWF>X~Qi28t~+j~=3|60}8tFJ%4;Fu5XiWQwY z4G7%FZp9|Ej&=7G7qK88DqGEt3$6)O9mJ3vbsrSFL-q&9uJKj~aTE-wP(=Y(pTe;V z5g0Z-&>&Zy#OMmpC=zqC-36*>T&Rku&DEqHsH+9esax7ih|VFXOu<D_*QMIlsuu|ljFCDAN^U(>GbC8%CQgCf1WH?G*dEqE7Cu^9!+Ng)oRF(aMal^^C{6G=AGEOwna5#Z7vL>3oLHE< zjI&YClOn_o1#LLi=^3NX6F7`RvuP9?hf#;? zOF^RwxssW_A!Lam~e`Ng#lpbVBXbUe<27&^JyTt>H47T?G7k% z!FmQ| zak0=S9kY}_5@wFte3EB^m75`OHfc~Lf1Y;84XH-+ zYJ?#Q31CayDfv-5uVuPCtArVH$X-J8(GE5vVKm^C= z7$Gmj&4!M_Lv5@-r!Hl=A^Lz@DW?KQK9O=b2mC53agQfXG<2ikheqp`D z7QezcT*-0s3LRatq{u?TYS?UKy#0U#)YYOeg0rDuI}WKY&JR;Q2REdsTT@mHEtH32 z8X6VXp@g0trlB3v4eAog*m5Pq`rJZ4DGgNBBVx8hOP|JU(^1_%eqcbn;ARBi{d+=iWZ1e@Qh0Vq|$M~{3xcZmTSg5N#EVSxJh@syo)*^2KoVTZOSMda>IF zwF6s#?Xl<9Delm7>%?oNW)J)@d)+|=+MWB6kz+p|@t@^$)CN~Foclqw5qNTQTb)C4 zd43j{JM2@pi~`R;AH^z&3>q>*x;Z@GKfq;2GhKWS!Bfk6*%7kE=mxuuEN;i9V+m9< zix`d#0D7VVPt%yTIF@5EC140T0^!@S-eqpZ3x+-hQ&Twk292j1@aYEdi#P-$X20)P zT7fe3JYCxc0~1C~Y78i%3qVcy6q*<+00490Il#@C7;dZQ0YT|*V8Z=_JGm9f88dTSGCCG?r%lmRuLF)#w#qP(6`iy?Ot zmf0ma(0%-97Lm7|3FF+Nrn*^f*5d0?5+8)$B`i#OfG&7Si=gBjS&UpA#z5Di=a4=C zD_~Jw#tnKt@kA2E3kU0$Mc!WQ6)1OB>xo+rgL%3Z{U}P(l3C@q;5< z8wEu>80^+;!XoB4F8{fTWOHw{NJrLkqRK(MN^H|~9~xE_PBQ}^q340rij##|I3SV* zu~r!Z1@+)|bCeBvbxzyfQ?t7B#vJoB!h`g*0Dl=C8=j|)ku6YIBYz<)KgQ}z6i9E3 z<1Y?J<{`HVPQaa&22PORK5MyA2S*Q}nYeC3A-gSQ-r*rf0ZYHopkQWa8)uXI(s4x0 z{k%~5sf-#DPcl0Jjy4^K;@@7nhZ&`s0C)sPZ_8?mlK4_wJv0wh7%rm-^~8>1AJ_r> z)MWW2&MJT}BxOyN{aQ}>l+%M$fGvbr0f+zOa&rE;EZESs9Sfd3a(kkP>_oB74Fra< z?1w9L9*iYbXL_Vv6JsqGdYMOZP6zfm`9jG`h@rp6g)YNA%w7B$=bpvoKyl!bPT%+n{3YY02UI1tqF)VS;%YYY=TwF~{K>s3(Zy7=iGJ53yEH;xIGfE4A?;mB3Yn(t~_2PXNd8tAhc{Kyq< zsslcT{0%YOY^9?puFKONi!c~jAKJQZMh+YtRCn8~#V0nDE4e`VRGSnsdcu>@e_O1H zge2q7EopS{NWmMCk8p@T$8Z zHyjM$^%C6?T(@ipP%v{&p*f*UB?oU|a(PfAKt>Oc0RgusrWZ%(WyUoVlS#uAN?K_p z11~fxUKrrsE;tl!2E4SIB1+gtU<}(yFtun2HdRRdluiV!7$H|oIEuJIP*v@%i096v z3x5aH&wY8$nLFyU{ff0!Xl^5N9KR*dnhTX~iRXCJJ%YAGa~+s%72{w|agNy37D^qh zB`^wx(-78P4<`>XKUA#)bV~rgh|{~n6D90b1_r!Beyuk;hTMRNl2)AmgBC^Sa)bHB ztF3z$EkfXK+2~xV=BkF|8dZ+4Wf;G-v-fGPHtTt6bVg1p3f8E@i_n*XMl;U9ST*VR z2KrRT7oM?fPhjSt@efzXh`O(TAg<@LXEAH3s9Yb9sH2(?T0%PJ@VQ&3t*`ZL=Xgn5 z4r<2c>fC}-O!SRyi`j46V(q`m3bmvy*RB^@N=w>u7?sZO3Ma~${j%t|EJ?t*z)c)O zKR!Df6h_LSQ+O_$>rJdI<_5yeK1R zW@m_a43LWcGGgs?PEr4Gbvd6kg$hz>aY|OUR6|$!Zah9VhKz3_W=S%n-H4^IMlPODov^ zjvpkkJY&wL^e{!2IgYAPkTnK0(B8pW_7xkxN8N$-@CVWCW@ln{ZI)*uxgVzL&Smffe3A~4dYyxTl zA`V4M7(ZLHjBGSgslet3M@DsB87B7*PuOjkBip;Hhbsw;r1*M@!itLLYKGp!oj!j< zQ=TB%r{`eLldX(&-=mmTg)qhecR0VDk1UtQo1@*Gc=Qc(n)CYh=K0J9T%U2tF5RBZ z@ge?3MnGK#a2^+3Ba)8YQfAF#k>tqy^^9%wcwLx>|sD9?Yuo#cuq9aOFa03d~ zO{f7)MXiN-c#H+pcFde}#RBiDP_v56oOF(s~Yw8tR__gq$_sL| zUFo(O9BUujS979eUyUdPaL1gze^R0VR9!@11LKU8!{RhwvgIfhsq+w1I(007fANLD zaX~nU6kDk_Xcd3nt4WRXA}$`aM_(Z-OB`FC$DkFp_%%wZEi*PGX73t?aGFQ^$mmH7 zU8EMp-qbjYLyK!ZrNOAbBo|a)f$Q5zi`Axpk)&`_9M`+y{;ZPDs3^m;qExBEQ#r#U z81a(5W68L(Wz`r+WjNKnKz!qMu?Tiav}>w99vyCH4z`OGZg;$&oO4Inh}%|q6rj|l zX92Q8&?$R-gAb7xH?2&bgzrc{&?nAR2?=;C1woisW`_9JXn8}Q3OyHhvn`P8Z7y`1 z8O8{#>W&&{obV|aMj{6i&=#uvNTG!6n2YV~jw`+WPKuZ#DD_eiV{}coL#*0&!d){V_pTpwjws?JA&zL#8wkcB!cq}? zg1FXzlsGJqfJI>|Jb`nRFqO7po?t8y{GiSB*&CY>D`gvxOlmU2J;ZV*Nxjj9Lv?Y2 z%_y#IZ$$eb^`r{laNxM_fG*yXW05?@_ZP8lSjQPiE5<$(7TaQ_N+2O$A}g*>7PEli-GFasW`f5P%x9R8a`iNJCYwk?EsilX zw6=~-eTE`o7oa6hh*AY_Pge)n$qF;B4zSb-*8*j1wAQ46J@$44w^s$lF__UpbQyB} zd3y3ea@fMDc@Ru6k6@t0lGJr!@xs|fp5<;YxS)Lr1t5zt2H7hM&8?R5;a-nZ^6)OD zIs}k>Y$?1Tv;9D)Dbej)g06Ne`=QQFgoFxXa)uuYh0;%6-ieYJQgfUX=FF#( zHY5Hq0%V&uD5nF*q>+;77>w$c3SjsjaJLXl!sw&B__*?r>1OGMK7AlAMi%p+9GFmb zCRJB^U7aqK;^w?iQyANy2j-D1XEWz5TlZbg8|YCCP>>QKHR4unIn6P2o^N+vHU}y0 z_IFxYK4UK+L}?Vv98b0kRb+&TD{IJTz=)fn&n_&jK+yu&alOR^(k7{Ihu^QEJl3_Y zSi%NGkmDWl6Vg60Qd+fUOOBL*6EjzaOudPtbq-q~lWV3u+&G5;<>54beh^1;&*SKx zbLQ$Lp!~T7J#$p5-{}yGHu;IbP&F%DVW%1wxtx3{j1+(zIDYK{jzn_dLo6HwRETn1 zeb4{^g9qz#xFQ3V=ZuRdnx5elZ+jNj>2j?x1Mhuv9F|E+Cz}1xIFe0y_-u3)Y_v

      _H>|vXd+31gHvkBWTN9F^d%jV(9lV^C~eWa_2 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 diff --git a/out/src/linux/sensor_ds18b20.o.ctr b/out/src/linux/sensor_ds18b20.o.ctr deleted file mode 100644 index 25ede3891886ee1289cd4d24969546a43080705b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 945 zcmb`G&riZI6vz2f-i4sXMBv1Q1CD7(1|)3vrnVh6Y_Hh98vO6=2F%ISaB!!#`Mw|D z&wFF@I7(PFOOj-fW+2Ei>yZ(6yWFF2Al+zEUwie(YJHl`vPHzwYyGtTbvv*hKDLtt}D^VxU0s~hqoBod&K+F3uxU)sGR|xsnzWm_p Uk36M!RFev(h=*Tk@G$6o0{yrsH~;_u diff --git a/out/src/linux/spidev.d b/out/src/linux/spidev.d deleted file mode 100644 index 079a211..0000000 --- a/out/src/linux/spidev.d +++ /dev/null @@ -1,94 +0,0 @@ -out/src/linux/spidev.o: src/linux/spidev.c /usr/include/stdc-predef.h \ - /usr/include/fcntl.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/linux/spi/spidev.h /usr/include/linux/types.h \ - /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h /usr/include/linux/ioctl.h \ - /usr/include/aarch64-linux-gnu/asm/ioctl.h \ - /usr/include/asm-generic/ioctl.h /usr/include/linux/spi/spi.h \ - /usr/include/linux/const.h /usr/include/stdio.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/FILE.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/aarch64-linux-gnu/bits/stdio_lim.h \ - /usr/include/aarch64-linux-gnu/bits/sys_errlist.h \ - /usr/include/aarch64-linux-gnu/bits/stdio.h /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h /usr/include/aarch64-linux-gnu/sys/ioctl.h \ - /usr/include/aarch64-linux-gnu/bits/ioctls.h \ - /usr/include/aarch64-linux-gnu/asm/ioctls.h \ - /usr/include/asm-generic/ioctls.h \ - /usr/include/aarch64-linux-gnu/bits/ioctl-types.h \ - /usr/include/aarch64-linux-gnu/sys/ttydefaults.h /usr/include/unistd.h \ - /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h src/command.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/ctr.h \ - src/compiler.h src/linux/gpio.h src/linux/internal.h \ - /usr/include/signal.h /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h out/autoconf.h \ - src/sched.h diff --git a/out/src/linux/spidev.o b/out/src/linux/spidev.o deleted file mode 100644 index 5b38fc3e807ddde2fda34d829165cb075a5f4f5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387432 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 z

      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

      ?XCd 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 diff --git a/out/src/linux/spidev.o.ctr b/out/src/linux/spidev.o.ctr deleted file mode 100644 index c38b17b95901d8896e2c8977cf62a96856ccdac2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 897 zcmbu-%L>9U5CzbF%Irl+wdz{5NI|RAx(>D-Bv>=W)Yspe)>lBRLS~aJZVr=4_{1O2 z_$nU7!B{U5tmP)j5lVvdL6r4I6~f`)b3&;jf)0V8w9K8l8uAKDSSl4}t8Qc1VbEe1R@IQb_snI_`~Bq%3};~B^bMzP;dqAQSvWnz=~*~k!|7T$ SuHm>A4l^A6^shfqz55M3lkx!o diff --git a/out/src/linux/timer.d b/out/src/linux/timer.d deleted file mode 100644 index 59a04d4..0000000 --- a/out/src/linux/timer.d +++ /dev/null @@ -1,71 +0,0 @@ -out/src/linux/timer.o: src/linux/timer.c /usr/include/stdc-predef.h \ - /usr/include/time.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/time.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h out/autoconf.h \ - out/board-generic/board/io.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/compiler.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/command.h \ - src/ctr.h src/compiler.h src/linux/internal.h /usr/include/signal.h \ - /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/sys/types.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h src/sched.h diff --git a/out/src/linux/timer.o b/out/src/linux/timer.o deleted file mode 100644 index 582e861f53ddca4cfc69ddb7f2459893fd265c4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287048 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%0DoqnIE|=&7Zrcq1e=h$A(K zE2q-_^c+CXf%Fu+q5g|vh^axmG~$>V#4$C9V`>n`)F6(jK^(6J>F>kvXXxM5}!7LWcX2Bd5e8+H0O?xV)y$I8C+KJ?iDVO#XIomsEr;sxVO|n_8 zA{biS)RG;gnVhGZl*^W4FDhe;Lk@Pu;=aOnUfmd62eTCOhPO}MOiVDa6(2BdpGI`75DN8+L!7CQLX2Clayl24& z7JOpCFaw%|Z&|=B5{|b>Ca}zj6wth}434UZH%(K@v81OJJ!{a@mY%ifN!(P8I>>Y# zXM$mx4dXMW)3{JRX)}ZYaU!R{Tsf=Llpw0=GQO10bOHnnslQXfzYn9wMMmc!H3j8=d!g7;X=42MY8z2ybH#w%U)N~f$>w2JUCJSbDQw= zPV{6GNt4H$hW}lPXAf$h?ZmY25`GLDh5=#Ctc-t4#brV)h}vb!=0B^op#&L5&v1H@ z(BuARG@2x8r>f4U#u#DRG^H7jF}|uzWp(MvgaG53|6%i~T1o#u zthZFBun^9Ss~CnfYK{pN(b&0vhi@Wjq|x+bnl005<0*&fv5W&!D5onunMT@!;_37x z4&a#PNxaYXqWnJeETLy9J(=D(h~hj|hcU6wo1y$x$!}}Cvc+pz)$VS*nxwz2@fs1Y z3bEa-^6c||19!rOxU33o6;$R-PvTpG;FUH}t86~R0=w$kZB4C&&{IWEwo=*ZWOLA# z^4UzVIS^SC)VD1`kUXI@<6i0?({d*FNLiwClBmp@q%^~nLD5>{L~D&87*8;3glY3^ zW~h*fTehoO6Ds0eRopnCz&l(RqcY*Z78D~X2?ws~-pUYT6T@~5~^nKUPf%(bHGDta;wXI!01IZQ_6Q(Q|=W<5?KN>Y=&p~I{Z%3-W8+G02- ztV(4fkxgmQqGnfX_zjonL=a5WGtOj7fHqeu3&CbNhI}Z+*;4(x?Nq#MV+cMLpVSs_ z!@8;LJe zGLU%40ap6a(n11nbU?bnf2n6_NwH^cK}KF_W|n7KT5(2Ce_wpJVrf73oPtu%^j!Fh z+J6JaQ(In?r4K17EY*6Z7p4_wy60pSWEJOTu#}{vIOAV6SyEntV4j4?zXAq48Ax7k zx@S&CMm56-6o!aM{j2uUO7itVs>7lrUldRC<0lTQJ9~fR*(q^P9o9Z z>tx}DpgLUiQdA0m0WB)cEyykuCE-o9JO;w+Ol z@H0i-@in7DI+HaID}zS{$&NDs?eVj~-aD&LWNkh)0JB16x$tgTmV`IdrojtR`IH7; z87oewm1+y&9jZ7SSc8oC5Qn~XahN6GyA1c9S!tQ@K2mtsY%w+lNcGL=nO4lAFgHcH zd0Ci($;rw^_w(0)V(Mj|HWOJG98+0^{lOG-=wxe0agF zFyLHxBWiY`J1%A&4CUbKV6{Arpe=n4$STV!5c3PA-78grq&BM`KR{@rA`Q|>SO*|& zgs3Rj0vH8&IWLc<5>hBzin5Av_5n?R)XxBjqQa8gej1@IXcnl>W*_4Eg-~5T1FDyl zWoh&fgvo*T5%Xj!ttbMH#1|0?+$mbPKq9~m7c;!BHUnz{tS&Ba9?NF0#)UYrgf0#s z>E+t2lD=t0Py#7hy6(A|K&<+PXj4zB$YwVN(e+MufbV5DL78<#7Si}AkU7gCzryj4)Zb7s}5%+m-Ul!=1!cI zBWL2l0Ohuvb$w3Su-cZdvX-r&6{(Y=T9A7T1Ur&C!5_?2MehlZo-7GbvgM?5nJdI( z9brH+S3pf1lLGSQG*-E+2MwVPVA#-+tK)=E3n#9Q2UnYtwcR0!Baa!4@fL$z*TrTs$irzRj&Pryg;4I{xTwO>wC~!6^ zr)2$FvC5HBz(E!y1qd&$2IN^QxH?`68n%hlmUEKJ#tw!#Zp3*wa!&O*JJ}lv79tCb zf&w78tu1E^G;Hn2d9XP*hGtBld&I>;-UzU^ zVn@|Z=g&Buc2I21S+xPkR2U;tyAfxG+=EqFMq|uq3mHy-4y;3P-Nl3naNg2JvfITu8!>DAO+VtEgOzBv_*&03;6P=tKqt>Y7!lMx!fK#I5 zl9m3NSXCzg^XiukKMA~kI3hX{-c}sz^t$46)qlA{vU zs&EYehpUp46E(?-KqyVq!khlnOSM@V*cLOX>xwLm!o@|y7r45@?x%rw62qqgO49ZF zWUoC=R7Yr(-m%yzZ0VZ9Yz-I#Sa6hgW9oQDevwO>Te@3VY=SEc( z7Xy(p6i`J6fElie78MYc0kGT^km9EyDJniO8R*~*S;P~7V_Y&%96ujPk~*@3CZS!5 zIx$fpiZf^$kJ3w{?vwyc_~85{wNHUbMMhJgatJS{)=ISfHJK&sI}+51M%@88B37Lo z6%X?t6a;mVF%ps!!=oc2bi5RR%q05708C1fS`!Q2cx(ZD=lE#wggDZt{&&dtipEb$=Qs~kdIAsZ?%46c=E;Ow~Qk8sYm43XKM|cxXbCme)6}yae7I zj(iQ-6$=II7#L7SE|`h9NcoA4j??HS%f;QtE5KDpFIuXxvFf-KcsF@mXiAbMAv6&F z2Lbu`<*Z6hQUMj!G3qcRs`$GluqI)i12tNSCNw%ZNz*YbN`%%CVVX*9rAV3(Z;R<>Bxzq$Q zdQ5m|j3!YX4hyp&EkDZ*tOaeMs{-Q+ic4bENlB_mH3~_X!Z<XECE+IG$Ltj3 zNI+8Q9SBSr$1ejHcYmd?H}))uxY!h6I!zq#Zeo%~6_E^*rd@PgIP^n?xTfN}HGr*J z6`?_S2t%xxPbT>CveL3O8d$x8d{f0FN5>*ps}hsc3P0$Q$e#cmph!ag12!+s&4dy( zsLJv*U=-zMx|HRijKODP=m%FuhxVG#)MRxM3L7s)lO_r(ZPQvPhV>d9r^|08&R2E9 z!6KD$7tnE-kC(nY@0$iJTUtP39sCNVd0LqMs)MW!42Fzr4VD_eg zv0-Wug0MIhdMRP(F#kA9%oXD5?cwe1=M~@+=obiqx0li<(8nvt%iG60KpEiU*b#XYcMbdiKmWE0%H17F~wQblV8A8QHpaOvl&Xbz#S*j3@F@OH(g zD9^Q};v1Udl*C9F2=FM*5!TgX5ZLx~C4hN!44|9XAwD5YQ4s}SS}8hV03A?8G@61e zR3m`zfdue@1Y{MUi>7m;Ix>kU=2F%NyTJneOsI@f0OUE(JG7xyVjvxjeQ*a&ih|8l zkp4=4Tzz?keY1)yZ7|ts!2KSYbifq198zM^!Tra8p`D_%OxzJ^BT%c7Qxer6K4M9e zgEfXzii(<`QzW&6xxvp4k>b$LwYdu=T$>EyBNCi(`p6SM*`%69D7}0l!(ppWQiXz2 zm(&p@65C>6!7^b1$ZtqTZ5|+s#WtHC&<(LiW8*&@f%K14qtGBr{4FQSS^s=`d@F7 zB&jrU@gSNzs-lxYixe|hg({)+23P9Zuw^(#iisFFZoNCu-p z6X@lI^^$e^A*x8UsWT1U$44UU)vyh#Iw@R~-k{k4BZJOHim2X_6||WSiDJ`)x)9c( zJ}!a*lLW{pVa)*|p#kvUAFyIu3$90Dn}IlVEtp-Xs^b2^#0zXNVwnT-4}}iqYT_dz zfLB2jxj{>q3(K8Kl3W$;d={&&gTzgd7iQEhD*&EFXF5n`<_T4Z9H}IUS@XK>-d&+2 zVO%M@8Q-S>C+zT5bYLbUNmIgAC^7@9Xi7|yU<={uxOmWU$=vLq(%_eHAP+QabvV*W zP^l^m5zy>GlEa!8Z;g;e@>b{+?FC`#1clS5Q=l5=3B(`&RT@&%!P3x^>8K0f7Mzf% zN{j@X%q7qZ2TX?muor6(DZn0$Mus^`8^GSf*GuUg6zJ>k3p;wCGQcaqE6Cd?z&pq< z(8oJ4C`jqA^nu0i2Yikwz_|c46b79WOQ0>&DLz4sieoaE)aq~v?l*y&Fc&c4GT5hl za9eg^>M+u!;?qGcRX!c$rXV<64NPJyTtMCMr?pU_1S>Uh$x$Lr*bTPSv=XsCtl-5V z;2Ikru7;IItEgf@fnotp19gfT)G-#3EYw=4SSW+*GH-J_6qXx^YZtGe*pnNavyJHfSg_^K(!@@xQj*kVO2^ldl@nP*W z5s7Lw$TqRw7q6!U#xpxv6&9wmlUW>E)L9a|I0DA0sz?BL;GPX@HwQOypp~nOvQ*Kk z6|HB;qjgFuQgTvq0yG;P7Y{QNt4anP746b^)Kh3f1a}75@T9lG3Sr(BoD>bbNVNb= zM@`?f-gvk|Y7(@>93B~9hiB(y^-C)*)})oC<>ui>E1^9!Ad29qr_zM|tqMcH0<9Ah zyg^@p=|piZ2t_Zp4}>M80QyPoblin{D|wxeYXC1nI3`s{N1zSMXPO!>@|r8enK)w9 z>0kwiCV>h7Ngxz2UT7(YMn^`1Ld*0guz8U*Oj#=|gYQI^7Kq2n&Pss_e3>vb!3K*! zhF2%XsbX-KBJM}S9af;A2a*?nKc2^)gckJuW4OH_Ve~f8N*1{n?xNTYut`SGyi85*3w4In8PpT9!8?Yv5L2T;KA&~)iqCOiJ z5ss=C2t-9Q1#zW1J>m=|GV@m15t!j^aC{X|dU zV5V_}%BW`}dinbLd-(=|0_md!W6&$mH^AH9$H&KC8L0FJ6VW@%UFlCIVmcl};*ls= zh%j^?Z?ulUzQUjhd0v?cTI#B3(?;R#>#7)t#eAukS9Ug*v(muIg{&9~LEuzVh{dcB z+C}Qqq7wF9@kWnva*Ocx7R(ud)85&M*AA2(0YL%&Ug(edkkuTh0o!Ijf$nUvi1k7o4lOx7HyHFLwwjV+bykI*Eb8d(*B;1C_1Vsj zTe`?h@qujP-p2flHz`K)qHioEIRa)G2#6~LP+^;@&KC3PNBR!%YC>Xsgu)wrkl3flwa)xb$qHZG z6Gd~N8z#_LZzvUl)~x`TOBkhCy%c0^Wv#V<_=4ZT;d6lC`vsAL>{{^+TQC(sr4MVT zfCzn|Fsz-VBuxX(ApBr)u`t!b5>p4T`QarSuS=Bl1b?W$8wZJlGMBt?Fjt@ixJvS} ze7v=VJ(&*y-IG8|;pAQcxkxThpCcl`4&ZkTMaBH-@&K&D4VMp!OCiceaVGQ42}MW- z($nHok`q!ub&E{~N)D*v%VfpivqXTF^c_h4i^p)wsi;&-70D|CQj(S%EF?Vz$;X== z-{`rdVV=W5kfAM+=>}RIiqDAfB$B=gmlD@51fY&dR=8xkb_2mdY21b}!&Tt~-annJ ztJvZ?`FOX3wIZ^eI-=qc9v=z0a8DsEFReHq=Tawzpj zedjjIE-fHWJOJ?b8+7h(-1Cx>+kuvjtA-q$*_q-E8yY}YhX-ug+35HL?$D{!=r#s# zd`3^YSb?I68ItO-=veT5@dhP2FUVc0=U@X`qQle^MuvbT|!6DYEg`d2%znco^NP`*K(88?KNTWB~tJnqwY(rmW-4k^kGWUQ z0)ILwNJ$FSB&d{1e0YP75vxk5V2`SL4Q;vP2xG{jRIM=X$Th=y(`w6gJqcofof=j+ zYQbZR$_#&CMP`E7?Tlss^ukXO3U6M1;&#QfBSpi8iWo@*_=ABo;OA6SM0uI7)1tt4 zE^@|7iqhaq*6dOf_7M$dtf_HfKyK#MhuM#gr~aUbO<%GCj(+G<>RMrvRQj$5rjJxO zt5D-E>YY_yiKi_uMRFd{Ls)b-5PXHZ zL9AlyL;^8bSX6XEG;&K$wB4c|A8k8{De8=U~c32}rgimm{gN9a_OMxYGQ+aIG;z2E>p+l4>6m~%rePDRel>yqYcnw$2Md#}g1Xh%vzpr1QuhQGs z-_O@qi5~mFfFSQc|3GhVB@hYD;kucrFhB@L$B7-u0i^~PDXb6N_Yzfr zQAe08)BqGNzTQE;LH_7+EJcYV)Wa(+aET{D6&{Xk2Hr&!iC7C2Ws#@0x=R))Oe>oa zx+^+@R>IDn0Tr173oLWAez!Lz<>uol>S~zs}-bi zh2^YNyZeVnAeqopU+wc+_&U-@Yn#f5^8!3FO7m!#!np%Vx__b z*iOMaBoqQL>7*dseNfeaoxHO;F&>m{MP{L5fS#!Wt>(5=fa3)8Dn&Dp*~P_hTneC& zSy+r)bS|X5S|XgHl|t~funMSq3ONfz_u2A%;WmNWayRr7ZQS|Kzm)I39 zpxwiS@zL|~RR;Y+a65^$8s^>d@h;`{(+a;a+@b*AA~;~d3ezMfrr>QS zwi=LPf@@r0%xb+S)onSUaBzkjj=-3CxxKUU%3WY83H9{S+&pb=0o)COzgN+Mu|frI z=(=J~Dv=F9gku6Jw%);CGC`h;Dlx?Xf@JDMD%nZaQy z{s?t;xl`{F9eSJa8ePT4DpILIVQmNM3nf4;MLCyZ)zY+WwTJYRm5Am>=+++6}q8-H=cBfAWY~ufRP2p!{14T0?5+Y zb(OrSN`KUo>2fJ}iU3fHDe|6zGZj3d%)_ehHqFlF{iWpk5_=sZ5}=8QSiBx4zJyEj zt-GAXMvPt@WM#bpf;{H`qDQwLl{(W&xH5seG~Ag$3nNl6<^`c5>~_LZ)Y)O)%1HkH z9eJYJW>CA+^GdU1Fu4s2*;i5WC2{JIQP00TfxC}HjtHHq%DU{7w`i% z!<)~HR7wwJU=VnneS`eK>kQs#P!7EU{Q~^Ji{S6?4a+6K%NuUA;Mt)lQu7TZt5^sid_@%IT>4H9?CpddKsM9m^PJ{eYAq$)HK zg+HF&W@i9@iY-27)#zC7{9I@zGd2GT?$^ zv5U5>2p1m)6*r(26=}NiEOt{?@~3zMzUjctI_EE2>%isA>&p&Ks~1#y4$2B)0*+?h!0}n>WF~1XwLbH8Ki%|Y{?Hig*vKSSsPJ-AAOLhD zS~I%C1K!aFMW7|Eg3&N-F3S+h;8ar0|)SUG9CrjD#GCOA9hb+ztIU!v@ewsx`hR9cy=8N zB2b?{?}Qj#2vht!YfQq{26};#6I0=`L0G#a1@SYxvsqf=Lf6p%Loki?RV;x>&=HHm z?I93h%s%_q8Z}Bhk<$t|RCh{+vnIOq@sAfic=H8nkh2F|*5t9~Ptp?D#fX%Oi~TyH z>l81#Uzt%@RL)KvG#Wu0g=0WnHndNCRE@h(=$ZV#=)d-cYp5>pA0+_=jTI=c$+e9> zg(ThWPdJefbr<#1 zGqdwbOVBW7+A=a6{q2m{2q0k|fgW6)7ocM9FpJEg>Kp>P9aVfyprEjtyZjm#7a<=i zp>tTPXZymRETiLq{v;S;m0U0}@g14>Qxl(nE;dvhQDy_X@eX3)-k6YE-D#h`FIaHk zF*6>PKAH)@{-8Xn-GltVMCX+`$kX#x!6jfk(a{M4fUEEeLiNAY6qpqL4?AEc`9Du$N;R;YCQ%hmeqw9`CI!&dDT37*`64GkLUCG7ewxCiq0ZC? z%MR3EP&eSJm?nyjw~=xk==Qs?@xkE`?ikhGq9b|PiC2b|sKLUYPWR0%$%63{7wNFW zV~P|gM}~%5p~BY8JI29TuCuCmPNPkV?N9&AcSsZQ-{8QXY$yZ${goOYRG5X1cul49 zpM%gOAeV{e5uD9*0;myg^U+RLp$IZA07cIaWzGLX+Ihf9U7Y{_6v2XGS1iE=3x~k5 zy;wQ!4ml|Y+|fimw!%p}xdTB|uwciAiX|$FsEM(g7-Nhj8k1;Zk1^30qyCJVXiO|I zYW#nmd7hb_eRjXb_ zmelkysSH`=+NX^nH$vJ(b(bwg< z8_&{70eT}9Y?FfKPHJi?dlZG-Fp%m7bslPu&-iv^^;)-SW<*M!?fAcA>SSZ)_${tS z-f2i%|AyPaR`@yd6W{_Oh2P-Gow=cLx|v%+SbU^?NCWhTP0vJO+cA8uXk|{E(5$?!d*sq zCsUWv`OM)CsjAbeOxX+9R(b86>-xKuJ|d@>$A)&|iAJe3m+pBzlE#pamh*fxsw0_)M9R5l z3_T6^oG*5#OcGR7JG0#mx$Mu`)@Zj_d5voq&q9)CmsAnk ^Klnc0Jt4$$Tna+;! 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 P4R<){k3L&t^+l^MZo(;b diff --git a/out/src/linux/watchdog.d b/out/src/linux/watchdog.d deleted file mode 100644 index 4d49df4..0000000 --- a/out/src/linux/watchdog.d +++ /dev/null @@ -1,71 +0,0 @@ -out/src/linux/watchdog.o: src/linux/watchdog.c /usr/include/stdc-predef.h \ - /usr/include/fcntl.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl.h \ - /usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/endian.h \ - /usr/include/aarch64-linux-gnu/bits/endian.h \ - /usr/include/aarch64-linux-gnu/bits/byteswap.h \ - /usr/include/aarch64-linux-gnu/bits/uintn-identity.h \ - /usr/include/unistd.h /usr/include/aarch64-linux-gnu/bits/posix_opt.h \ - /usr/include/aarch64-linux-gnu/bits/environments.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/confname.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_posix.h \ - /usr/include/aarch64-linux-gnu/bits/getopt_core.h src/linux/internal.h \ - /usr/include/signal.h /usr/include/aarch64-linux-gnu/bits/signum.h \ - /usr/include/aarch64-linux-gnu/bits/signum-generic.h \ - /usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \ - /usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \ - /usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \ - /usr/include/aarch64-linux-gnu/bits/sigaction.h \ - /usr/include/aarch64-linux-gnu/bits/sigcontext.h \ - /usr/include/aarch64-linux-gnu/asm/sigcontext.h \ - /usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \ - /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ - /usr/include/aarch64-linux-gnu/asm/bitsperlong.h \ - /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ - /usr/include/linux/stddef.h \ - /usr/include/aarch64-linux-gnu/asm/posix_types.h \ - /usr/include/asm-generic/posix_types.h \ - /usr/include/aarch64-linux-gnu/asm/sve_context.h \ - /usr/include/aarch64-linux-gnu/bits/types/stack_t.h \ - /usr/include/aarch64-linux-gnu/sys/ucontext.h \ - /usr/include/aarch64-linux-gnu/sys/procfs.h \ - /usr/include/aarch64-linux-gnu/sys/time.h \ - /usr/include/aarch64-linux-gnu/bits/types/time_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/aarch64-linux-gnu/sys/select.h \ - /usr/include/aarch64-linux-gnu/bits/select.h \ - /usr/include/aarch64-linux-gnu/sys/types.h \ - /usr/include/aarch64-linux-gnu/bits/types/clock_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/timer_t.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/aarch64-linux-gnu/sys/user.h \ - /usr/include/aarch64-linux-gnu/bits/sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/ss_flags.h \ - /usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \ - /usr/include/aarch64-linux-gnu/bits/sigthread.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/autoconf.h \ - src/sched.h src/ctr.h src/compiler.h diff --git a/out/src/linux/watchdog.o b/out/src/linux/watchdog.o deleted file mode 100644 index b6d10126a45617f8b576e29842820e0e5fa1afb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286768 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

      -dOmW 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%0DhH>@YV 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 M>6!oEA diff --git a/out/src/neopixel.d b/out/src/neopixel.d deleted file mode 100644 index e7287c7..0000000 --- a/out/src/neopixel.d +++ /dev/null @@ -1,21 +0,0 @@ -out/src/neopixel.o: src/neopixel.c /usr/include/stdc-predef.h \ - /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h out/autoconf.h out/board/gpio.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/basecmd.h \ - src/command.h src/ctr.h src/compiler.h src/sched.h diff --git a/out/src/neopixel.o b/out/src/neopixel.o deleted file mode 100644 index fbde2f0da2556c735150ee80d6cd6fbf3984620a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199648 zcmeFa2V4_b7dRS(Ac}Rx?yeCF0Vzr7_5cAQ)g%bkNC}A2qzLxjyRNLcV;pH+}-c{zu$Ym-+Q0CGdFYR&Ye5wo_@}~^wWd~m$0&u@c*nNTP5Zz zzE&dX^jitxq6PhGAvqw~Pi^bMbv-x+!!ZO7e7-&$4d56G$1pgs&It}V9K+!l0SDGO z!{GwQNH|8pfprbxaD`(u9An_XIyX4n;TQ|YI5@D*0}cfo2->-^zp1jh_GX2OAWjp1kl$1FHz z!+~{8;b;cO9608}fpyK{XaUDOIOfBFb!s>Q;8+01LO8H45RM=?7QwL?4y@C_5e&x? zIF`bJbs=zs!m$jF<#1q~7LJy1tbk)B99S0yM>rg-;8+a@)0LLacHp78+F>thoV+$Nx;rMDJk--1(&kk=(%HT=- zuY_Gmyev_I3Tqo_YDTW4gq0mta)k|RVr7e!)SFfPstDN8e?6y4xnS)u|xTFMS_ke;k2ZEn{IKtNAQTa?9d@E4Ww!iu|78!s3%q%9iYg*CgQ zcK8!67`UVXWx7LW6(mv{C`xC+$sSKIiurUl!9^K--!M4JN~FD^C=!DpFACwT-KM z0-k1rwQW;wKHMn7?zH(4FDkH$w&jrU9N0y>ve;P_Ng4d;K=@gq4*ZamL3-4~WktN~ zE%^Z}ZPTo<1>MW!?-{szyRD4;y;1zV=G?s_R=uFA67{j)>Nfm#V881i{3>UrCP{36 zq1mYn-*m7Vwy2zK%9Yq2Dus-t3VZ!w=|i}I@V)|%(Jwbe(tTo^LhPvkN zHwoQuX5D9H=16R}RN4dmvEH}-utE5}tsM5ky>>^b4se05MHta*)1iW1tB_R1TeewN zI8GOst!nTESwGiFw%)+gz$=ZF{FE52a-bob5+j2d zy*^&_`UFB6oE{Uwk9%oSDSVWJ${_ejP-!TsiIuh*t7SsR8X1m&y+q?nqp3xWnp@!o z1EVv6@ew>!EmtYAb(Z6;YPl--*~I*~iwiyeBRyW19hVM7divug(vay~;r<>J_jG9uRtjnYKruy2Gciw>VX2 z1F8m3iJDa}Ep#H0)Udb0G1nA7g%!2jg+|zoMDnA!1y%r?BFZG5VlA8hqU3u204cCZ0 zUWait8|!IS6{Un;)>VFxR>pVP*jTT%uEd&E<(fgA9b7Uqx;5MuC%oI=;iRk~G{|ABpLEwK7_#XuR2Z8@V;Q!YUAj{GM0<5NJeNoNfdo9KFMSrt? ziq`+1*NA&AI@*6zLmColwP+IH*`3bldP4n4A|+!*O7@qzt!+Nuwk@D@4?6dxb1ypg zrgI-U_oZ_`I`=0v(slqV2C`xhD+aS-2rGuN0zC=vp5d$*!HSWr7{!XwtQfvm ztk^<@Ed#%l1OE|r?;0zZZ&`YuT|H&RGgffmpU6Nwi51)|tfnghI2m73vhL~nENgg< z73W!TffW~7ahVlYSaFXP_gV3t3hJpe!2--dAS*#?MSI=}%aXBe1PcEeL^Z(d8qNdg9rZAy5yF_9>jgjppGr(sN~~K-cBhoQv(i#@_y5&N zlZt>ZtwZB+q;p+5*P}C=RL1L_s0O{-5~(wtX|kn^Tewn<8=aX{U`U{#8YP`obSAWr zdeLuhI-^TfBK;n}X-szsfu!gLmq?q@xjCI%&{<9A06GWKIf%}LYSLi(9YW_&I%7aW zB5g_MFgl0RxrkFh8cp>WaF9rKbk@_^K<5}bx2AI}o#W`-hR$v2+>Xxe>D+(>a08iF8h)vx&~hbWWjjXF7{HZda;Fqch{a8T31o&RKNEc!ETlP3Igs=h9is zr}L?%fX*bPr6i@LV*X81TH2S|^rJJA(uG($lhRTqrKLwwGb<*uVhSs!vSJ!5rc+_NgcVH3w=GT+l+I_0-4ZJ3<5>?< z8e&O0+tIl+oyDqmMXC|$k>6FTNuicHQv14eu1{yCgURVPXy=s?Cj&^mX?~4SKyYC zk>`<+nw#@)+IZyl$TIz7OX%^RI?L(7^^%sF;E|G;Sj?FGgu!R#%BMB}5 zb{VG3tkeQintLK%K}U&hS=pu}Q!;xtCpSAaBZd8ju_wB9HpM5IvfXlW}n$yG`(UoSsTA1_~LiP0Dy6cBC<(gbQF)KF?ej7FKK57Y-o z8-vw)gE2Tl9qi*JQ$m&A5M(s8iPp#v1^^^%6>dr29*kkb#h1ZT zc^NsWDH*0D8Ky`XjUj=7MztX-LK|p|4GdN5j0R(PRA87fSf|m*ROYAQW8q;%K{EF* z25wRNm`J@gBvKQE1A@BlsX3{D88V|WJ{J%%AurctG|J_sf?QK}MtoXY559#neiIJO z7_I@(_;?XCpclk1%TaP47@-afg=WLmT=Iq7}FuqKVY# z05lO=eV{Q^h7%9XY2uCW1YQKn{Z%SYPhXY7)5p)-%h%W2PvJ`+7f66Kuvvx)hgl1W zjnc7chtBodwi;usHpmbP@AUDK7z4BhJ+;>39H_%JFd3l)Rkbd{7_3nnVsskBA*u_H zhPN}Ii*HB9M6e;N;{cJcB~Ed)K^LSA4mKKO0=lRpg1nVD&#jCqg@P~z$=3+z0hvm9 z*%>mNAic&I7Zt6ERE7D)>9zdB;n9IcJ-i06JVvcEcp9UQprF2BR^!D@iRCs&)`}+EOsl5HX{8hf5DwCV17f^ozVv*7Z5GN6k zRl)!h6%nD13<7jihv?L8Fl|%+%x_^r$n`6{^Kwwm^dbLqa?9zh80c7-{!0rI?j0*Ti4*_J5B?Idu z#^~=I6b!FL_JYG>L<_eR1-|^axbi#vQ>|1Qqt!~4QKyMeN5d<4wvw7;%E$#!1D*6V z!7G5EH9Fw6(MC;VkXDWF_w-V#gpVVx%+rb<#;h``!wuNCH=exs(Q`v&T;J2r8@d)r z4MJ^TR>Z1;G?7sNBS!o1iGDomAOw1yk*;VAV!5F<=+zMfYhw9v z9J(sqm45!do=Pu&Z%=O^T&1s%x5Cfc*W2Gy<>RCBQz(2DDpNy{!73tMu~^H8r@*iP`g5Yn+#}bQW&^y%pt>}rCql9yo;aSiZ zjiA9Kb~T#P;fBES?XKq@FyJjj{8B%*&mcq#h~{>zI}CQw%}fE~mj&bbUA)hb3U z$WIY@z(8RBEw}`aO*|pfKtRpQP0h@Z12eRkGP&G*hvqB8WJ)rUMrlMX$qXG{D^sex z1wI<8Zmj_VFsonmE|JI;*d!xzoI$LjDOCD-dHMKyc`1B7eHH%R-bx>(Hx3~{A7qx= z{1gH97tvLWoZ`l75-=y&IW*-Y3=JROY^hgzf|>%KhHT83OR5d2o}h7pe8oG^3C}$F zzEMj-U_ft{d`0OiNsG_P1xW-(2DFJmWe4V*=B=>G2@(V}5}gKA4|#fg7uWRE3}+&m z5V~WOHEAMK`Z&uP%0L67Dj0f{4iL3jQ)mZ|IGdZu@o5~cSpx8L}(re>{=>fc#$$h+m@o>XO^O{Ah#;nr>8{<^o$gPW|Xt8|YfeH{{^DolL zG;Thi1VqM!qXI%m%ecOvgCJLjTY9o%cog@OL}>JSbqLKCD7meGv2Z#ifQctIm?n6V z^yTEl&dF)xifzO}J4HW?(pAO(E9AYXhJRF!2wQj7(50ESYr{tOwu* z5~mP&V2lM1gsEXXL8KILP~+H=COR4vlz=EOGc-XV8Z%UBia7Pp%Mi8cR*I0ZWbfFy83z;?l^#CnmfA*fqf@!2^hL7Ryyj{U`_<;VBPF*0E+G3wjs znM6h7iGLm0n1Y@pFeK8HIB2v8&( z*oPUcB543!GBE^qIUxc@g@r-}j1$l%9872chCWPQ;F=zv(-qmFyui63@H)6~ZqS$e zVeX|kVoX7Ik1;VVJ|o2l9-(YgH#2)BM}P>xq%IM?X+fY0@|9!R7Bmp9iKOwvz8-{1{iyw8ugqIjX}=_T=+4ikEb7T76BE2X2jSpOpplNgs#!L7#a(* zMawxA>%QCsaV8@<41B!MU%+&&s9@m4&;yW#QHFYm$O#e<6%}5{0}_mLY(OPVrc|f| z4p(GyeY_ZYiYSqrbi#86GXMp=P;9X4L)G43FNo-Zn*Wm#;Ud zY)U2QY<>zA{80F-&=mFe1_jO+zTMl~1db#hAHmvDx7G=^KN?ZYiVD^TgophDzwuN7 z8!b+iUXO)$Qz>{igcv%((ZJtY1A&43 zSL?Kf&t1RB8)Kr%o;KI)BOp4n{30*5R#vrtP( zDPlK3#Q{GX@2Ug%gTyxb9#Kw;=m6;Y;y#LD3qM_GMJt&V9pDSLB2qTjP>fJsJXS|*@dJ>=c-2)zJYMepUJ4&? zA1`pzC{;iyUS4Pfg1O@lK1LuPCD=S*?5NOp16=@mqb^N?%irDK@}I`j&nqYhTJc)t zzk&GoHA|V%$WMov!-7H#zF~u4Srs8hQtLSzAI&B~ZqfG_l0W`DRIKQA9pguVQfzF<-Ns{p3Jn>IF`dz(!N7(#jMZwIMJxT+e{C8OFslsOLv>{{SDo+w9(S#OWA;5i_2}yCJmT9uHNbmd(MQ2~l2=5;P*t zqYZY4F;H)ic}tQrvrX}dosB>da#-T)niQWK?+O=4a?UciE5quhZpy|oIo@ju_ly}3 zZ;>~^<}$u1IMXeM7OXHDbXxL>i2@HS-hi|gW>yPhkQjiK@c7DonuXWS9B@Jf0L21*w!8C59x5N(V-1 z`cUv8^F)jOCzu`V7rvJ{Pf%xx;U5-4wDcQ$J-ak_BffW4~>FhqeN5dbm}%#EsqDA0Z9*>xA47R+p}v%IyltXVS|xB;DI z4FD4q$*9BS$7g3GnG(~OhLoO@;w)ofOD2veKqN=WRK$76o`tA8j6jYLGKZ8pC%l@L zD&#r$18oRp_up7#bT?Y34vA2smZCxKjrs)nv=GU-Fffoid`)qN7)SjS-9%rF(uX%kXToHEPZA@~&UEFs4f9};G0#XE|N54AEM6-sZ0rEMYu!S0BN1{=hPF*SXx zI@*ZtVY4(VWNo66DTWv-?LHX3GX{W<8DIl2LtGb0d6}Gu714$xN^D@1p@vAlW8STr z(>X6UDKkHV&_YH@1V*6_bum(k!L$HbsbjcJEQys zM`VZw@(#$sfO<9zQHco&AU7z8m7JGB9&wq`$Z*|g;Z1>R^Q?krH#IpmF*QDo#s0u9 zB8Mhv@!CMGA-oMiIWHr%0Ds_=#OeU}pamdwz#GGjU!-e>kgjPoB5eXUr-?8tVvN%j zN=ShBav^E>5T+Lco{)c-jBAk}2}9P5qZjfu5%(}>Qv6%313H5z(a?uCnvETEk_HDv z=8NLl2kJ!_D6)Via0+lHW59}!A`wxT^?WlHVmw%ncqj=C28|53TZ|znDi*vl1q!9$ z$fYlo$(1V7|1sc-J|dAb!h&J9S2SHu@M-Hntv1S8F_(%;`xLFyW!tKO*e^Wi5_ z8-bDIs4k+$7&`iYYe>_{~pcb#EidBSS6cXqZj1fe_zjfRfnnHed$lMT^2eYp9QGm|i zD1z~+6kw#8Jw=S&7ZNlOyC$<6*`MH*;4K6&K5D*}JN4 z6CMQtP5K5t?0^?;5LstI2$*6*MX{H*h&mn-1>SwFCKg2=I4}*^sfIblaCm%Tmze=W zEL=$bQTj33w~UOLCBMjhAd+nGiz zIp!)O2E_Yx&6=p?OiREDFoD$%=^fao+u2XiCLd0^&ZI>G*ej@;OT= zsad|Ov(nwy-`58cGCjTgd>~uI+gITS9s!lF7kIQFc|-v@6TYT~;7K9ogK=hN`e-9G zXnmnt3K$FX!smy`#2OYPO7it2fDn6mrIY7`q`m=KS{OgfyD8>i_jxZQ!p+}Gc0sVdmY`7w5CpRXM5o!KYzKX`7CI~LjSD6r8wuB-NaDJ(KmzzA zWWK~O|DKphvEc3IAkZFy!R-~S#S9nf*#cK|AP8aL#7xo>I|Kiav52^Zi$KVd1W!tV z0JI|X!{tB*`9R{NH{lzwxnMv#gAS(8Y;rOqDa{n0Y&0^J9EQus)HpCuV251#EJ(%q z1v!FbS%Ma0qVhZ~eUiEWrE1f&8?PO-`nUrGX*G zMCRbVtfFrlq+e(=n2wH}YDQGO? z8}rkUZR(!c6?izG`-0QXNW&kp3RqGSpE+j19wE&fj5r^q(GxibJkKow;V_D{Be75Z zUnVyT+)CsT^-|FMqTUUN$y{=B^uINcDP+x=caC}M+@RK#`Q#dj>xF7WS1!c?e0^L( zwlThYd}>-eE;$giOrDj2`xm~>g7PiR7_(D8NZZ<|i;4jaHYQr0;R-H3@E1Z>T0?NE zJA*o|M3*Z3be53z1`%y=vI2_}CvM2mB@gb`0%vD%!J?!jT;Z+tzsDEeCuD&$+|Uu* zFx5U<8>uJfC#L?x=b}#mV1lv$wIn}*lc1)_X+$stk@Z4>X$mRA;0u#kMrLm3?96;X z0#J~F9N}XHa^{nsF~R_y3$jXn2 zgt25XT0lUrhlLujFo;MWo<1}#%F^HR!CXjSvcPFBN(gb@q}1eOV=fC6MnxO65%Af> zfv9UhBwP|fy^EJY6kRDHQ@F}#Sp$&*C;OnIzsdC%F(`!>QzuCZBqy12A=rj2l@Nr} zY*p?m2t@iqR=yt;;2#0KR^hKufe#p5^bppDq(&de5m5M1jsRr$bIWb8Bg9;$?BRu3 zI@1U(vs03jAwPv)jn+va52Le$vbnigr&tuH6yuz$VHp(oJ7)C##&MZs~yb8&v*s4*`KxCn|4KGC6=U=PH!Fgp?m zl!hR9ObTZJbFhG%9ucZR5FR2LIFcgoMxQU``QS{OSGPrK(80<>f|uZ)aejgDdE^Kn ztN?YHQ*5ygt^$j73JAI)XU2pVnK2llIbj5NlKBe2l98E_k(ZVxXYLpj^o1n}*8)C~ zYvU{d_DwWftTlj%45+_wTt!gS#0iD;(M(Rzl=8+8Jch6`J3`>CW}@IZ2r>>x?}`kU zCnx3>KV(k4L(mhNKy#iMiEUR)O&R7C-po%d82|wwh5{otnZ(#_ETgXsnLhx9ceb6f!c>Kp(SUKV;fyrPi;NSsqJrnw(yYvo758=_wY?oWxIFWxqB{dtOnKo6wQZh7kav+DKt;uzLsTT57znflYuI!eJ+3-sj^ltf z2FU8C#cc>x_A6X#FhDjSzqWyYlUcbDasz1E0CL_yQV3>;D$+y;aSqbM^LtV)CFcaPx9I z4wHE)UECK6PZ7o7q=Ln%KrG~m*-TV|nBtrZu%Md@){q(tS`br`aa|H0CIiM_jMJa9 z4$=D~a2q-PLUw3TD`VAcsWJ`?)}<;_>ns^G?v{koiFDr?nc^zd}Hrl_sp_3@IN$%BG^*#lkvZ z9D;YA()v>pE;wo~icUy}*UUFZmtmSVB82BAi;V>ZFnoq50P$4ye7kA{36A%d!BVd;bmfdLl8_hu6%&Z((ypV!#uoBA5stY-| zg)~7v94thUxFt(4_nd_w(1s`SL{x7%_ZSEX7BVYl85oFVs^#Ipkc3ZF41iV7AW7ID zcpbrfwE2Z-EwkJ%r=I5GDoX1|-`*$~ngJgb=U5-nf<4#U*VZTVzQa z+}!igJZ(6*oEf(9UI1hY|9TxV3bFjWYyzV>_Reu(L~aWi3ZT{%D{tkNvKHHM@)in5 z8I#U9RiJRdIsmhp&s06ioa8A5Vp4xAZs==aSPY$E%DJskDE-mAzFU}5_%`7;c_R4r zBr(FuO*1_U@`Lm%LMEgQj28-vE5SW%-nT%;l(FI*J;ZSM1ug<Rr9)Koz|hj!+SF4208!kbixHkAQM0XY5LNq}|i zEXa>}2$3PEk=HGd6h>pD5^lP|peDB=tjmu8CEV;Dh0uu}JO$tYO-hBmUNS+pLUu3b z`4p;*M((Gqsf_yt>B+dH4Lz!m_awCRkg32P0pF^*j&1t^%quZ7tA{+v71ptvlSIYU z04I{HgPO<;@3mGiuA4Mc z1MdgnB=Xbwn%N=PIutYnigA`CgNK{P2~l%&Sc0Zxgg-WAG4bZ;mLK|JIUa>efBwlb z1ULizfa8}l5XGxl2qi_x$nTqCxz3;DxAe5s+}t#i8@Mo1<1^qoJ|VR!?sg?}OG!ye@RYelsbsLx zR#H>Q>x0MKlKK2fH*SA{9H>JNuJ}45(=ExAX390Wq0_-F3$~Sj&63<`w+3vVmYWIZ z{LY#1X4s%61yV%d8lD1oHtvuH(JHsBv^>aIL6EW4>GDKOS4P6&Dpa)TKv5gVRmNJ9 zkLBNcSGdVzx-KbDu!{k)dCO>8w>%TLoB3n|L7(IJKRMiS{}Rqh6zKUs)G)y@@f`|K zs#tC^P&4L-Sge`(50*`Gdw-C;78@ia8JLU|Z>>Zj0|Firo*$q^RWwH<9sW*OpaU#+H)=3Wc*Gt)I@lZb7R=>Nt97YQrx`Ek<5PHaKVIF za71WuxgGEs+|#Uxr%5h1-vQ;3X-1r{fwHRf23JTFhvip+5d0HuA_n_dfE!#UOau)d z)=L0B=j68I)>d#mK&THUhqZvIf)?%MqE4MVv{T~ju?E080K~XSjR__cCYL!LNz2h1 zG33RTxfSx@!Qur7Y5`*gMVi~g#L*pmtGGcO<$m#Fb94sq_mau^vAMzp#tmeBTxANv zAiN)1K`iWbqsTfUpIY|)U5$}{g9Zi=MjREvM~w6jg{2%8~Sf%1p`gD49#i~}?w z@E}eqnah)GH&(M~C9w)X0^}?*vu2xzyyLJRC8m;dT?9m_!M0`F+eGQw$Q*&| zr$FzqkcQsw{yqvXA1~a&(9<85AQivz(k~bj5ZSs9ShGUeYmhOn@Kg8;=^vas z80IiU10LY;FtoVQ`DY$2yq!bR;u3TyF7*#hI6tl?fEJ^0jD*QWrMG#{E6}Xsd%&yB zew-u|?2VBK@vkH!YR^WtGDqBk#SKL5paPn*5C!5Dzbpch3Q=VTEnZMyxOw8Srno(= zXrD>k@C$ZiiHZyd_cH(oK?68p;byVG1a*XG9O4kHB>AVMb9|)9BIgIU>*MoLakoi} z&iRmK0n_0Cn#h!Zq6_Daphix6^ZDT>l$K6;kTgy*CrIJpJo_xe$H~n})=1{m5N1PEDa%inE|Xo0XafEreXT9M0uMdNKI6zq4K>1UU!M2TSE)nh#qSBIt9Z78f7- zgSi4U{7y^k7hZSX$IprBRqVx*hPofTFfSjpakiNO?{|;|7$*7!^_(P6XNJh1Yg-ibJ$aDNvBv+=hqvWKxd0v~1G?*qMMf zVG0Eu1;~am!ot*!!W$P9AYTNC6cT96X@OWF?p5RR(KU)Ng zTd3k<2}+0I9LqU5xm^LLwBgZU3sQ;{tRLZdTv17lvJJlo%_)#G#l?~Yv4;L9Do@(BH4PCOxCsv0>5q1O@+jWPe=l(X%HLc zC{x&)1Sz0c#6cVcr9>=XnHs3{L7ktgC({DS7nX%#?i&~ufRN@4F3V;Z#09-I%7Cr7 zTRgt7ZJ05%XAw8D(C+>dUk8XdfS2I=L%jW4zu$L!e#I{+=2p}LwiGfr%?cV*zlyAk z)q%AKjFj>egz!Aj0ZQcW$UStfeCHpCMA*v%cUWY+Owb%f>{TZEU1&n}u&aYWjlqTLDoa4k6Z58w$l3VmH@`F# zxig0pEH99^7dgF!6S^#N!z<2gV?v@rkO%(_5mJB@Trj)|p3no5$`W8NiB#CVgB%z+ zxMwC9keO-mx#+1d${igWfjZd85u8Su**zS|qr)T;QZDKiyrIRH5N|}o$(RiLi?T&& zA~lKQ%$AW14ishp1uF_zk|*q}!@+`+vO;Kv2Orp;40xh^2i#FG5bQ#WZLuwuP}1(% z;@2{Q2Wu+JJT)8x6s5?3^s&&M0VK?Jg zwyX$s88mVV^@trY$&Gs(uoV^*F>D~~%lysawH3rTgq=`}aia*4YZm6mR6=f8=za&M zL^KP+!@L3eV-zH;SmY9o!M(VOO+0=;d+3Fn}BUdXD zb9#=_Wg?l%CmOIMNq~%(gm<@!w^Pf**%DjvF|b&Z{@#q)P!;eIVkz8TZGd6$bB1s( zl*xr&4r5*htp=qAimAx9Vqh1$3?*xWU=NDD39_; zp}?mx8KqErrXK*hamr6oek?4IfbTK`0ul-!gOLY31;>TmJ<+KvN0B$EaSQ^Knl z#8<#C1UjZ@)f@na7u0N^|90;IT7-ngFw=Drlgtat9VwSV$gV(37*eFc84Zbp@F$-N z#Y!yKOIl1laMp<37(1^9=s#RhlRLVGt-rilSvg}C^( zwHd!fTU!VtK`;@%2pjw{9E1oAsBhr>f=-YLaAE;!inW5cfiQN*%iaL4RYbxqxDlWI5g_lHYM+M*6f8;6TJ)6`W z?f@s)kuW2;0ESylOdFOAHKTSB*3AzQA4C@${?P+-b0Phfa0Ws}LQVpt zRe(Dnk;{k>XF%x184&F{$Sj2Nf0hFwybT7%*r>?G14FX#d4S@t^oE^E_-KVOhdssH z1^@aF;=p47PsV^O*JBISfB>A}HmgJYmU-YrhCg1w;^OcC3yT*UAtlv-Gy{vBBJeGo zZAHwl7`a5wce7z$%rj7ZltfKrg(^9&w4itE3psMcIt99B&7KX50L8y@FPk-R#ttol{Nflt zx&gz%<$&AM2nr9G%>3#YUXkLJD9iMLVDQ+4V2ECiyaTqXM2`i`pdF z1@{NDOxfA+$2v{_-6p2=FifpE_E%`J6fM9PHh;wYD_tbuJ7z55F5H#^%2I^zf71&- z4!I49L$hS2ZH0K>HyV2uyW^O<7Ec7OV>^+eg0nwfB}^cU z5r|aqzLBBs-j?%urCjI=)=KkB8G$b!kflq>=2dGCnGK3+eA?(`pZv6T*-W@il4}3S!i8K zVHX2^Dr|bpoU8aIi=cx*c>jKnePm9|Eyr(wKn#P^lLRjn2V?GUor-d*%}j*fCZESj zlHu$dRo*_LFTrn&#ZBCTq9_EzOIny~%QP1NH38EC&pbM3rkgy{yXJUwO-s$nfoG4pyTY!moCssIDM}3)@0W9}!YK{%Kte<$1vCidbv#LNgOW?-q>b@0CgmH$tq+ zyA?#<%wnK8ls503!Y}cL;U=f1z!H7-=ZSg1BYY{_Rq4a5gChOX(h1y2xR^isB&K*@ zp5iT4f3V}>58ucn1+x-UI@tus;4e%YB&F#p=~br|lAnfF4;h#Fpi`5Jy*5rB_9P(X zmQ%-v{-bL4x*B(>zcou-Fw{R#Pj>x%x*vH_YaXCj~?yV zcIR+@-xn{>-&%Da{{Hp7Ajjhcv&QI}hFPmC%--JAqiWe}rGx#-9jx7H_3pg^f!P{a zgS*u$)@*(zxWu)O1F|~LPnZtE+x@`M zY+tw1$(Kq@n-JQlSDePB;L6>Qr{_J^Ene+-dxFi|07b*NUtgWP)2dc_^N!C3CcIu# zb6ovtrzYNR_p)mDjEFba_wH%_CF1(Dw%)Z4_iwawX8F^rH~M+rc%i5qb*5fcm6Y{q z?W>nGxD1-_{!nqmclnfi-6nK>tC+cIg?nsX_mOMnc70s#eCuj^qxR?$HUtMOJnO7I zv*vd8p~l}XtobdteB8It@ESMfwmXuVyj1b@Ua&F4*mF_TkEff=eKe-`Q!ke@^-FJV zcCpdiBuQTnyKymlC(n)ZP=u}?^y&J{s7-c;dR1Gl_Wz@~w&SG+ZN{!y{<^9EgQx+H zTmA^xvS?->$1TY}{dPY1a|2mU*ZmDWwmu8qzWL0uAYXaR!^4yRdhqa}hwquQwQJiS zT2QfWM*X1+@3lTLd~k4}b@$u@B^G8(skLOeX>g^$!1)C>C*E}Gba2C@^{whw9P_UG zkg|=dmut5rBIIL^7tEThQ%3&MqQa~jJ4cO~Ez^{aaG7(!{;On#yu$U@gCBR+ z%Nq9iv&BjK$DPl~>ZoToC?8sHWB#5i<<<}P3tPJT#`ft~n}*1mcs{*oz2#%vTA#CZ zo!eKsaPZ}ntU%qK&6oB}s})*r-RH6U54@`Pde;1B)pi^`9O2Xbhgmy1{LvvU=}u^= zFB6|{@|opQzT48)6Wi^pyD#%y#T#9(cUxLE?r^{8*s({aF7F;S{Md%Cs`4e&og;ge z`!VN6r%v-66Gz`__TgotsTU^Cy-_A~W}RcIsV`=XUUWp>tyEJxPu*Wr&R2U`b?54% zBffr7m!I7_w|x6qy|xe95ZBH4VDa6mcLzBQns9q>uQ4Th-Ch2*{*BTu7or>neyCLH ztE5%SPJJ0URY>mCsZ-*#LkIkZ3`wnG|JI?(lx#ejpITR3RSHj7@^dH8V0+x9jZwdsA^UUPqK`e9zevK>3$ zckR<__2$cezP~%`p00(zDza4-`N)a$TuOfpwYvE1kI3$yuDkfHd-!Vm^i?t2e{^Yl z>FgK#VZIkWX)d*&`b*6hgYRUwwmW!qMp$0T+zu1=rD!@hXVf^EvVDKuR!zHX2(p`O zcQm_9z{QWJw&*68A7Xm&Q@=Uohp4wX*vE#nTyN*>qZ_NX2|A{o&}HH*hlWn|k1B@` z?CkH{He&Lmp+~gKv&#(K7wwnW<5Q& z_vVNr0|fKC^vLce4MiI__JY{JmUz zCj}+x47pFo&v*VMA>rN+!^RDd>OZbYIn9@vYg#N0{1!Upu1C3cx0eLGD|q*5LQl8$ zYs+5jdbX$Aqz8(}?fpNLYj?2pv=ZfRrp28#)*cYi-*EH!O4l!+u550fo@u&SF?Mq1 zi=Rs@ap}=JyMDd>m&XUSh?XXPx__X<^zAXb@ z`>SV78oA-iAXE8C&!@!nSvp{M=!QQUZ=IdHz%{>Rua--;W>AG@m{{H7jrLH#Rq+wGhXuuI?TGZtQ0Jja~~+JB2O0kyY=?rJE*qOzzg2W2IsJ0?rv%{q}TR(q9c$HQU>}e&~}IF0cANjA`}0VBPcH6Pxb+ z)HgC{xOL>dYRew&UHCPB+FyI_>>czq_IST9oldBhbaG9wnPc;l)5sq_D=L<|*`d{? zN~iuDuivt? z_(>0^Bt|6{H0-ln-shT2pQ&NK`=*Wgb=KsYU%tKllyG$Ai$mWk77QP@VwYW_*NfX1 zvz*-SAE@J7VP)8kX_;^%MiO?mg zA)R!k9{yUoXOhFkx%2)!YvVI?-{HI0?k!7nY(01W(~WU`%8h!o{$u4Tlh#ceeaJp; z*YHDOal1wzY8ba`d>S^twTn%=p)hUHgtZ^jqAnsKYMD zehqg%eLAcER^8D~E-@*wE>-un+oU|MZFQ#flbu~At$&(Q_hXe$8>XZU52%r_De=LR zXKy-rJAC>0+HKdknicM({Bozv;o7zL=sRxmN;nYQ`aSp|B;7CT({CI&8&Ec;qV-QN&R?DRu+P?w z(KAZ#D&OHonVeIGx!#TLb&K6GU|jtbpZYv9j6K@(ONRBZyeZR5+}lyH+STgm;YXIn zeOPg~&U}T#jMTN;>SnETPr0~T;pJdD{_%J3GVZU+8g4tz=sNglyqEKkcaK#iAJ>~d zv`eeHe++1Ju!a4T{;%z(e$1}*^u^cTBL_@AcBhO}zd`m(&mCy`aLBLcAFC5KNJ?HW z7;Zi5Ov_P;9ZRG;th%|NS*erH4m~r>-u`IbiKK)FO)gZqc4*cD?@_aCck6xIA0EEw zhs4wdm%gSgh;XfF*Iqe9A8)+$EGg2hM&k*sAD35MI^DO{rmIf}rRVL7*>G{hmX4E3 zZX6v@-g#2pb8Qb@Jv^Xvs?k_w@sR5?o)?^VJDggnR7`uF^75yctl18;zK!cq|EE=7 zu2$+>Wn{iI{Z^h^#+()nv#W0LKeXshJ?N?Ejytf?mxr9 z_2gKm`r!-9I{ffu=R>zrfxXK|xo5VRIIp#T&EIopuU-AIyjb$L=`fn$<8Xtj6)!eU0Ykuk8LhVe+>zt(~v7?ODgLWZ{^r z?sICi$~Zr$tKU2C+dfT>?o8a#M80v;TBTFa`LrP`mg<`h7&*T}huZl^_8$6e<2c>e z=R@EA^tf_4_bT0Io-P;ZwEFFl2NCuPC2nbLQ5gH7`plH)o%E zdnT&UvpMxNn(L+aKD=Rp*jt;mV zHuqRv|LYs(Pv2Rtea`y7>c8zd^~3LD&rJ?pGoj_8l>=IysM7MIc0^aH+sau!Eys`l zK^D~Vgt~r%vYYz#cDVR+ui?GCVkDo6l<~B|Fb){X2+AAA$e9-l7jgK$yY`&LY_ez>=H5aE&NIjdd{>)uPYPWY;M_tyPbv(b|P{MLel`gMmY3y^N zXSZKHb8bePf)R1s>d2R!ux~f0%ZT;`%PSi8*BrNSS&c?o+X17Ff9+taj+OYo>iBVR zf+XzN@)rug)3?`sMolWEtCg5$l5U!k5Ei!gp?0t~=yvUm_wApJ>$kW>(z@tD$IAA6 zwY)*kefs&s-zkU6r>jo2+fse$%&v1*&rqFOQtjy7n|G(&Hr$&srOW**wM*SByZ!#y z_TNJ9FK|A6?Z;9!1Dd>@(D~G#)@`yXd7Mp29TIjRs9wi*b%XD}PHH{CWH+dK?0^%G ze*39QFL~8=8C!PiH+ERs=IwUX#)~Z;x!m%L?a;_HW89GHN%Io##4diFJU-+>gxkU9 zF`I2xY-`wSm-oR>a`!=>k3}4+;IXc3x1072J4eM%3+OF<@icDD()gDJ*LHmEAN{W6 zre>4t^xg7#;K(1_2bOcp`FY*@n6eAK54@PPbLfG&V?D#5ut+mIwXi41i2Gv*UlYJrwr=QYaTK!Ynl2*$SmUR1)bopUcxAYXh_{lD+ zvgI=WD45^nl-EeZ&hSAW0+c;=#9dU4NqF~m?eD6x2m7BkOh`5K>HA_`yT|MA-;e6F zxyJa;6^=NJUHGW-IjcoeuG$YeS+SXKLQFuj!$0n|RWB)X-@n<&| zeY)QwzsX#i`u9&vEP4HP{cAt&JvHY{f$z^hv|Jw9dGX_uvCr+wsypreW2{H3)rL3n z*mt(SY_vVnDf5a)h5ME5;m7eYhu>ehKBc$ARCS-ljVHA9xvDGma>&X1Cr>tTxjOpK z-jkoDuAeH?WF(nRe_Cwu! zU3DK`(dO7m^{&9?R|nNU>M^3;-ru^_JznQXYV&>FwG$f;9QS#uRlPRxVH0;%?LJ=F zICtXp0f%>W4w*RI%BY=qeag;d!4vaLef^%7si!T`W5m5`fAv0E@aav-iTB-`wD4%x z-al^Q*Ba`MHIC%K7b+(tEv|R;$S>t(+GeFz9GM(xGFiZ(uptatR=mU>5f z&7ZQXO;^XGZQnhzZyz;kw~h0_O6|O@R`*GsxN4%EhjwE4j%5>)3@I>lj&f3nF7r94!`_eZmqnnXtm`*kFrO1ojjB~bbRuJDhGZ)aAd#gV8wfX+5Vy* zWE#HE?#=raWA859HafRTqkGemhIj70=1H~wbw1Wx=5*^~^Zs?7dJpx>I9*{^&BzMJ zO3khlInVdjhD1A?0h3w}UDnTa=trMd+K_LF%7e}}J&u=9#SQgKPa9V@@Kvk!wtq~1 z5j3>(I+NW^`;;RyQ^L!1v;Fp|@tUQFIu3N$KVr4sYW4Z#q06S)Wrht6?a=7MZ+*&C zPZ++xLhzZ|%92eFPYqpoE#b)pefFTrU%Z~K^54F_M#B*Y-p~It#`5kr%Z|A} zHn{1w8fSm@{e7Ul`gX6JtPZC?0h5sUK90DP8NVR(dD`glBX0P2O~}`K2Bi$#f38EN zaaL}DPfImB6k(N{e{;%<0uQfA&1dB8=o;Mb>!q?o+kg%L8SZW$w$7s2;zVxM=7651+q$xhl#1)k)p()0#i5axbsYB+cv- z^d_UT)6dY(x^k6n zq^kQV`@d-GwPRp+_ePg3qV_PU(A zqIci$!>#YfG_P6dYP$;udmTQwtX7>he?5PAytJgx-Lw6Vgw|i-*m{IR-Z^EhKiVqG z9}G*Jb>zl&&&14OVY?>0D7kI*jE)m4U8(jitm_{goQF7mUYT5e-1Ej=CVq^rcm4Fu zaWP+A9S8e5emgN@%-K4XHM6_;27RhND(2Og{38P#Z-=;dJLJ?fzTocA+P7|xy41W? zou+kzW;a`JS1GTjv9`;*(@l10`z}_E9Cxqg$~QYcy|eYUX*RIq$r9fhj%jtE#P8>) zC^ky#Tp!r%YedA)c;@YmJjZ%#WKob5j)v)m6qy%})6 zY0O`JpYCZiz@z@3la6~gn>D=owy#}xyluNLw!nX?;XwH>kDEL>c53rCg>#*8UyK9# zjyZ5*&Zq|+Ivzf6`}+0yliOq)Z@f?ba;3a)eTT!()1Y6VudYZ>$N zvNoQ#zAUYN{?D&dpY)sket*<0eW&2jXFop~ywoYO*XJ8^BVrtH&YtuB)G+;DpChlm z`|xK@>&GSaDT{Y|HcWqd!t4FiC!W{;YUZ8(v~lh5nRoV;?)7qS%7*E+muSu`ntuMz zQOA4xoqYY`uSKsDdR}vNI=b95*}qg+#LRh1ntuE1(8U_N3TBz~x5D(TYBj(0W%tbd z2NxXI=@LH57Q`pXq)k7b3+$)fedyc->o#{C7gRm{(8arI(?y=|4wR|*Z2lQ}=}l8U z)ji%iV@X)g(qW;;WX{nS_B^`&to_#g+duR=_2KQe-py{kYvF~}J}o5f)A>IRwYe7M|I?_nE7o6+b(~$zantCz(q9rsmXg$Y zRjcKphQS^~#-B~OQ!Xv=M=P&uH`{+{lvK5yG-2T5KhJz_>+{04;;@X&vHoG7{mQ?& zvb6f`h4bnj2x~EMXhr$ps?kR}IkbH2_t*LcfiCTK<@c#@{6$NTdr_0K3=5l#%D6g2 zDX(kDZq#T(yXy^)#@Zifa_Q(rucluEGv9AJm6><{wmNn7?~jg6O56B3B)_9--^`gS zat-kZ?!Kt(;5nuF+BT!Qc)sqmKWzI^L#%O)Qm)(@)aCWol{c|>t>mRbXefGz* zt0D~Ndf&V8rBd?C?gc4NzU}_G=Gj%6&D8GtqXA>OFYPcSRX)^jwYKfOpDVwzx$>m$ zxk_6G9B$_9`EF6KlxKAwZ)@WsAO2K*;P9uz54}&tHq5`;|H-sNarPTz({%$jJK81< zwy*H>?Btt^CM5pVVNrGYq|1rwuZe@J{CK8ELzmQ_`aZfdrq4OmA8sEg>4?&PJi4zwQ1bTKPu09*CF?EkFM?8b&73t^3M_- zmAW$E{WILibck`-n{w*Ji|4Uh9c|7%51eb~ykv>D(zf>f=E}-7&mS}d^ik}|%HR5K zQh>61?1mpV^uI8$cG-H@d{X0G7q1%`)Ao5)>EsM&O{)cC4sS|p`smcpW1m&(HgWs* z+K;}TdinL#_RAhE+P^FHdP9W;Gx{oQI_r+@{&U;%)GPgJvm^8Z=C<@%J}Ognq)TF)3^SHl_AFlZ+etDu$I)mVz8u?!=Ay_u2iU$ zRlWP!_wPNzy(>Te7`JDx%l=0WNA83)w7xUDw##_q&M>EY8|rVr?09pb#xJ(h(h9#l z3h#dGWKz!s<+Nj_RPqe#H>2E9UEB9fW@TJluiNii)@j(jA##yT7 zqsJxX)tzGMj_h}#^76`>fsdcc($5ZU+y3OFEk_15`QvQGz(ae>k1%|hH}_F>n+3C? zj>gw_9vFFi%YCOC^F6a>%s%c`#-y;j6+NTG;X7r9m&{r=tB=2Q!_6P@b>6!B zqT$EO9x@HwKK@JFx2i@jDh9}24gO_p(0sSbt1>;Ww0+y{a@&+=($2f`dN^GF(ZjeS zKyh@yXH^VH0;qekJ~RcuJAo?K4$Ceuub~8RprM{TU+E`yZyvDebCO46A%AfW!l8$@^8-< zUwB%j*}f}IJu5XE_CxcZyZ1F+dKG=FVari}4b$1ZaBjJ(xvO%qBz{bj5~sVK?Yl~m z^1S+ZH;1W>?l*g0ac^|juib5CmDIheWP2)N-h~BaOTKSvG=91C=Z^d?w^m(udN;#5 z(<|-9^<}G8^qs%u^X95uZ7!7TxVFd6hZl$L$nV;%Ux#nad(>3=pb)zeW>7oK%{kpO zKO#1;Uc)JIy(=7DXRv!ZzxT3XH@}uo$eHSpTY2^4lUHNThX1a=yeVvD=(PRUN(LQD znE7OesrJ*hQ_clW(+qqkdoSyflDu|DubqngQ?owxndNz6TJ?2K4Gzy5y}pmvzJn6~ zM?;cZL@yW+Fs+7Ro^9K8W#d0(UM~Oa&t})|)iKsP`pdKYu1BVg3x4O>sUY;Mm8?w1 zeSMWfI_vD7)J{wNHTgn?eF4W;uC!OjxK_3+HNQnxx_9;SEe_^w^$A{eHQ)ckn=|cg zJ}Np7|G(IK3%Dqo?qT>^mR(AeE{O$1L8+xNSsF>%r9@piBqbya6crQ|MQm(Qz!nw7 zZn4EK6g#mC^F1@OyDV|v&;5U%_xrxz`@PTlbI$afIcHAHTo-e_lbyRMQabsaQgXK< z{ff()qk@WDf7~i)ReXB4eAm>KCT0`mTCD%X)mut9PF=e6-JJDtpNGCbeOFEQW%GKo zyy@jP#_d03r6oC#A76D!V4p$U$pMoP0R zZu5q+K$V$A4m)>#|DAr|{D!3wTD1}LPD*J#vN@SBRmRA3rPDfZ&w`u1U2m*>(*4(q zrp5bYw651Y+B<)4uNRX~OJ2BPujTM|;EIKm&oS4N=K3Em&$g!}Ie%)9es-kazS0Sb zE*`(fDOk@n+}gT7xAkbb()={%SnuMmrr*CbTsFBde?cna(CQ23h2|^xAvnjH#ay)g;Cv$Xm(0k7AjcaN@t=VY0d+`$Op!khfb}QHCwKBH+ zv@X^;_c&`=X6W&^Sxe5&UZ8rd`D968)vx(K3fInh>O1e(c%#)LzC0}XkWqZ+^lzF( z@$5gj%O(Uh!5?d)#oy#V_Lkd0pJR0YlL;;}Z6-W-@xJ_9eL_O@ypzW#O&)ABVa!<0 zDr2?HucIE+^^2OabL58g9Mcmitr^#XIm6enc1jGbc~Pv?bBgoDCG`@ip7!A6kblWsm$dYG+$yyvIM+)4WDOvg^UTNF8Vr4u)w?b!Owmizr(&5_8SJ`bpf zH11x`YwJr{hX*Gd?mhKHLHN_3clsxAd#{O3)UPktG0oZa#g!p@s5=c7*Ka5snUbJC zsbb-5@0|SQ`)yeI2|8~l)IL7ud-&ta=zddvZ(ix8xp2m5_FQ^|{?V_KBxUb&bbGP< zorWYEWv1S&SzkyWQs8h`?%RHeu$Ml;jJlou=C0ndzijTNjeYAbO`WW=jC0e#HFazG z6a&3!!4jd>)Nco?>?_f9(^ETcJJ*ISRqG$&NmqGtWTwjCO-By}K3G|*lbZ9OU*Dg} zzkaUH8t^l6VEommIY&>Z{H~Np2%-ERH+uFzxPj{a`#|o6c=}Jx9;0^CMx>iCnrkJ# zh0<*NcluFk{U+Tm&DFa}wBG$YgMm*uO^EUUTDw?c91H_C1C@C%Yl6h0?Ry}G}zejKN6`Rx9@(vJ$I+PRfa z&7^x-e2RRuh?d%)$9UO2$NfRCWzEgwFCnBUgZqcThl(roEmt$!s6EnDcjkJOJ`YpEbIA9>9}*}mU*!?xO~UEOD+kAEsi_TuYLSQ|FR_h<65<)E8ZvS z(Ug}d|9Yud9RDnM?mq7B`4dKu=oZ&nd9o~Skq{H$_JMP>BFit{ebrVoPutl56%?RKu6)WL~f{64!p8gd5o zSazhP>gs?YSEFr?SFbUS@?V*^xTqydi8nDj(sgLdjx`DMu52AKPHu;4@uQ#X&h9lG z@#WC<(mx3kE+5Rkr&7QD>xnYnJ~JzsQBW{oEzH;*5>&4&&{8)UwEXYW>E?O-lAX z(ppT+jvaWiAfV{UzMNlDPn`pgR+p~nb83?U$4GX*jgI$~z_a1*UW4FJ+jWLQRR7HfE-rq0 zSo8X*aT6AOY#9_ypZc-?VFu-Jq=(X~-cuWPwYF%j*_0LOVSHs*+>-PmP(p02ett6@&-kzqd1>Mwatu)bEtnLc)uUGir6@F#)CEZ^--%N^Hmp;Ewg z)y-ux@we&v5(WczOpVf(HyB@ZywaiQw8qI8>Wxu$7_~B5%k%2i(lh6)CtWz(BgbH- zANR0X%HX_#GqZ-i|LS93H=O&{w1?yC?Rrw#RXVf$%k6~`!W8df%CpYh@A?8@WZ$C4>p1uu^C$BqmRohPJ@xa^byJq$>sp>~ljt}u3G5_lRYwt&ozp!GS zvXYth{m5Hk@}Do9I`cqHHBrKR_30UD*OGJ|@Xl7GygnPN>vb*Qna4=o8S;kH&n`Py zGDxfPWTq0k_6}?8oELw3yto^8G3cfIgGrB$v%+q^A7I_BYR%({i7E#(_pfa!asI`* z`r&iHB2RjHYssK0xdUz?AGhYoSq)tEOqKuM=#8z_g_ziJJItRvrm2qe-Zr=7gGJTr zRKDq#??dH=-n}~@=klX33-Sk!S~=E+~PhIZ?2zU9K;_ZNO2JXku>{C(=+(lBnEh&d%! zJtTf*Zpe`M0`(iLY5TAKEIe0ob=kKyS07$prZkOoIPKx($B(Z*jAE73sFYImTWwuS z$79sPzoz~?x3&Z7tN#h=>lh|8jA{V+=LW4yOzJkAmSwb_sN0~qPS$C=Yk1J+C?=)) z-pI6VM9VllV(}N-Uk`&jOy(G#%(rHRQwsj^EY-^9B_RtJmoHf}chOS*+_18xYXgSQ zofkT9!`x*nD=HQ*I!aL`4jSv)`mQFk8Itz9;6i1G+3fn8*_>|8OI-3o#E*8fS&~<` zVVx{Ya>n};OM+_f)V!7$y|14E^ICHH)(O@Npfzt*K%DM~=`^ag+BUNdp-a(tvg+gd zynfh`bIbqLWYJVL_{+i;oS~@iU)08dKUhA%UnNqd=;9J^2K{(dY=pp-Rt7AHgt5iiHnY0dmLSr z|6%a61Ac%yi7urnNt{Lgq*)%!rp7cw$AEP2OQst$_(@Rk!SCvUROy4(oo- z;BjHt{5=V3vE9$FX)xMRJ?56_h7s(UvLWZA7AM6Gd$xC&g5=A67v`?Y_>>zdVI2}v zqU3+6XRJ%%h~C@Ip)FCaK_Y|zxDTNJ03Tz)0#HnLv-j8s4Vg~$(1 z=O&DJIkC=ig7KNYv+hJ?S6eO!z4~IqVW&r0y7yV57QK+lE`GdjR*!;%i%))AFiZXF z{j%g$0~gNPk)oM&x6E5*J^#;_+AZ4O%2MyUrdM`DGNm+*Pl9pXw zH6Uv2$cR;zs?%)`4BzjvX|zw-rpVbL4M%rh)Y|jBET~{n%gm88{I9+W*cv_ObGnVk z%H*MZ{^7BnUmC9eC>@wIZP~p_y4D?Y$MXX}HzYom8~=^o<7{1%U`@fBa}hC7QA#l} zkx^06F$|?{6#X|9kh^U8@Vo%kkiCbhE>7FGO>>^Z!EWUa?!JLbhF#6mV^Knl{~KZn0hvJ~3FZTP5(j5_H$$=<95L+R@oJEX?Z&uPy3d0lzR$DG3xCF^984R6M6>v4FZM4e8u z`pt_+1~YyzZl)dnO?_e9TzUA*W45fu?hT4Yq`)c;EhQp5;D+2OwJjcc z%L*i}_o!1&rd~&1NK<+(bJKd8$u{=3F_hEH?)U0lRCzVo|Msl{pAqf*=Nwi@23pOdNiX!z{RmR=JJ9%>(I9?t7mQ!`j9 z_0{!e_mc}}_0xsgpN`>=!0`|-6;v`;S!z4+`@@4+G0FF)%Me9~`e52Yc4nhP68PyEu$ z&!NBc+0236&MBT*Jwo|t;tobt&bJXw7ae0aU3&9u@wHQ1t9SpLaD@GA)D(8cxf3@c ze$R;>%AYdh;o=Q9B5EDhKe1h`tYNgsW5w}ecE)u>GnF}J-4@(-es4C&s{Cw|3_E&s z@YrclnWx@uTDbZKhaF$HK_xOk_d-(1%d=&JeWvo)dfkn=&2fr*TzJrB?#bu9FCV+# zVt)0-Hkz7Xhu+>_w`?k1m>C2Oul}a-_?7ey%flnDK^;XVs9ALSgo z_HEI8UZ(RGIi;7u(%CZM$M-HcF!QmEZ_{N*l#b4M<2p8mD* zUjEb4b4l<2T>e;`J;B4)L8Z~TDLG?(T#EgHqX5=}%qg`JWmqG-Djjd)J#+xsB1;JLev+QMdK&Z289)d!@ECE7cb=8$HJNe!TNW zFa00VM`!o3JYpLEjvjNdtWjBJjNhKc`6o49*8Q0_`1a93{CiYbiF@!j-?g+wX>(N0 zZ=YCcXhW&Et2ABNbcYlC)3|?efJX4?MU5_{edZTm@<`A~c@R@H`W&}zPhsLb$MoL| zbWLF#~5jGC9sJs#`T?o7c8J5!{H2 zp~>fNwMZ^{)qDHx9@&Mv-|RY&y*f4{+J0{CSbMkKo1H^gjw*H|cD#S(6Z6u4lVe1S zjJdjR)Ox+qlkdHGcdydKT7=$UjH67;H-MM&9UB%@2CBaAAS9Majz>CccK^z z)pTN7Q^t+5OPez;Z1C6JD=l0--xjX2-+40XyTs9@Rlg2N9+z;Ku1@>%`0Y+R-P)Df zt8dKhXK^n7#CKWsOPL8a9$p96^fO&IRPNH_vDwjO_`0jbIH6*g+eR zZ}ENV@}oMG>0O50IUQ}<1iQC>b5?l$)>XN3GEQmvrXHcyhowwi)3@($a@cXlH~ZJ= zuyJ+~2KD!|>iFJS!;M;KM;I;Yo;gyC_!{o;Nxe63_Z{;^_Dew85!S37J=VVNc~tLs z`Hwpx`JZxT_B<8x`sA1|CmySg8`!XLnR#ZyGWqb!VW-qKUe}*ow>l|ba+{pg*yr0; z6~_hj*|A01^r&9>xG@=c~X5_9p_bke6(ifUfLe|&HYmtoPZ-kmUf$|bA$Q%o#8^w zIs8%fxAw0z=-zGm(-V@k)QPLtBq%-K=}2307P70WHY0kZ~*DvQk zuiRyeq%( zm_wCx^uRHerBm5XE7UwDE}W+pHMq!FdR=&~pStBrAI+)UCjhIGtA&<%#|tgTQR|Pi3~(76{7XIHkNUcVuU~Diy>gs9?e0pOCG!gWS;qGZoeuh}nyX~o zzvqZIQ{y!!zkgn9Z8zVkYM`{4#oqk6pMCcDn5cNE43%Be^Xj~2L%l#*inGYnc*H!D z5vx_6GLK!n`6$44-P{|ELuThn<*Z0c=%b^cxOI3|deECyi^smRdFr}{sTZv?b-AyO za<0@!-{&{uZvR~B_Ax2rqtfmD8MT=j4;-%lZ2na#-Rr>Dq61%s$zNLJUpl|9Ui2Bs zv*S|gSqGj@U9t3BY_weVh}&;67kHQOwgh=5t-n06k5~B3f=e?_Wq*}6_un{>wO(3f z+EBAK{T8g<=eKsB^^iL=-e;?g3_KrEGAK1>nup=$CO;>crd7VH;x@halRLWn^@rov z&S^P14D-D|S}S6KN<{vL*^2$ceAnc?v3b)F zdscc?z%&)sUYUfz$L#BuG<^NL``vmFKP%_!>E~MG&a8FwdwBB87r*e~UuO^65G{9l zvic5t?I)^LD}r?WUZ!%-Y6EZ^)^2`b&I{hFDl0o#ebr%`mXvjsq^Y z4lWyfL@eT7 zxoA^<#6u@tvnh6daZl!YNv%_nj)oiF%nI3Ibn=dFHv4Y*ypK=%CuZ#p8#(I9IqiG% zve}ZqH)OWu8D)YV@POfP7haee&jLfv-*E{#uHz3}T)UD?q# z4KG(3J-zFm^sKv1|g>PB^sj(>x6|v%MuPi&?`emVI1a zIi_MD&oHZc#US~ammYQRxlwL+>%Au3&DVIk>qh8$kLZ1SMbT}Gt>*8)&OB}zU*bH+ z^uv=fpQu^$8sIOvs*bFkb$r_0Y2y#r%$jv9;{Fu#aL0Xp7W=I;dNy;@#qE9O->h_f zeeLthP%%>5PT_+wQM?a|(HWizd3N(??D z`)jtUf40LyRjYgtxh#hns`*-({_mC#FWY~0<#Mgf*~jxH0EYz*t-cOQKeW!VRf3N+gbw0>f+)?Xk zryOLL9Nw+J+eOFx6Hk@z_(g@=O^{;WilSfD8er#=lVT7t)#mEwPs6w5obJh`XBDS( zzbAY8Lbs()5^AkK5B(-RBUf&?O5G~Pwnc>}O0R~>D)o4~UN`Rghiy~R-f8z6y*WF- zyxuBtb8Fz{C({Ss8oVJfFm>AEZR^aBgzoiyd#LR0s`WD7uNvx3MhxA4@1>ckN_n#U zk;`@NKkEGktk^tr%$HA!3ao@P24Pi?W18l8)w+AcsmSh``sDiXIWk^3E59a~YErgx zvXS$Ta%MQc8b4xzO?k1>y%hZ(0Tf5-ofX63naWXeCq1eYfWp%TYL+7 zZ1Vo$j{ZmTZ;lDPx!v^j_mbl!*TxxFv9^@kY{}IMS*CL1+^)utxv#=BoNCwZ-|i6P zGdRxM$+%E{%~chfDFf&=KYKhl;PTF3(WKq;#yvUgw5I!^TC2jXAuZiPeD!%s(hC}< z&N~?CxFapp|Ypg zk`=r3DpQjdMfx8Sbv^(P;5v?f9Hl{qR>&K|`aOqN1M6 zdD=5LFx+n$~SANc_C~Rd?436+^E(8zn95HQ+$#ywQeUV}}p5pjNw2 zpOie}!}@C4n#5_JHbm|nbajKL;@&;^+iiI>^(;U5S}$6&eZgC1O785p%$CLD?L9B* zq>c?3sD7>Q;O}>1FSm3Z{NO2624`h>HWcf92tavm9a@nF~t-|1@AF{gXal&7n1 zE)G$auA*OMxqVpmVUrK9|B$M0l2^|!&ryDsuruOC;cSTsoXKwso_aTiH*sZuci>H+eMP_;6>(0=~Vh%JYe(Z>pXzS@Y|`(5zC4L5CaZ zD!;4--J|($XD=Vz8nOHdm%lP9GeIFdb&y&XKiA~l=5HtT8Y-?+&R-ut8=R$g$iJlT z*_Qi0I-C2)#m@_pe8 zz6N66;cruORjJH;n5Uc&j&*{fBPzJHT_xhQMr zih(w-HGqc2m89()3_KrL8Ty=i9%6xT)Cyah) zuOu?Q8+jb6e7<3ywfcgGO~I@9V?OmO(cQZ{VC&C|^8PB%-AYGQKA%xKV8WS$9;(lc zN=MZm9pE-u?OHc^kJ`T7N@w*g9uqp*Zp_XZYi`{By>Hx^p8;{|KKbv$(i$i4{-pcc za`O|-3U~d{<5V`)UA}p?_Pza=fiGqpjXiNJ`Pc0pEiPd{T%@8tw2a!#$qDccd^Kt5 zdNq}X@++GchRT~)SxXk%eah}%rhR2{sm_Mo3t!c>+^j#l z=i@8?yS$|=|CNWEikx&36Q$q%tQh7!dhGZp>8ua-ObxpHy%mFtoczD0Nj#r6a)A8g z?xRv^lbHpNb_cvo$@+F%*(tRklGW$5%z-%R;}cg59&O>Tw>EX_%BroCmmPS}Q)SPu zB))yYoR-SeJA)T295rS1fxG<=dudJ^+H&yX`TGkMY$SglZn|;j&iPZvn%}(IaVm2w zr|^ZutN<^Ayc@Dn6)P(Wn(abbYhPP5^jNBS>xs^gZ5gdCL7$JWR-SQH?^F86Rh&b8 zPJO*{z+G?cp{fCMuHUgftg|M2{uyFE_1e$xKie~ztv_y-m)XCbJgnGfd!H0z zh2hV~4;s`hb=0VXZ+33n+9WaS%{|=`mVR;J&*THM@4cB=5HwD+=}W@+@$|2)KYnYr zTzdWfmPT`YR>>_)4xX_nS@XJP2cVeTde%@~(yxg>J zu?HU9AN=R_kV7`Fv$BJv7#f4Fr%m}XaRqC@`DD*OtZ1iIL+OfA`QN`gjQLjTpObdy z^NTJ1pUysc!VS^f^+VaIwje*7%}yI=AV;P_C$rH`Ex3&7R`RJ`{2P*e|mVyk6-#% zw@AQk4#J-rjS_w7Sa{0>KRX?6GKm#dL6Fr|HFSNpc%@!Y3Eftk0Uyqaj3HkYq9jB$ z`am)MOm|v#7C$E=5slDRY6_)^8Drq~%*d$Zb|n_#?XuG1L20Kz=lQ2`V`)Eh#%4F2+N*YXLx?d=jt6fqI$n zS-}{7Wwe6`P9sZrAY)sL=<12{A1_HZ>(3zCI&LMMg*C zWPq0of-$ZrZ2$d6oFn{#BTD#Np|JBe8*whWFGuv%Mx67v-)+P-;LD8|w)=LYuq|9$ z(*Em>eW+jK4%E=7NrAuURM|%^t>z=0+CWJ<)qhr|T48C<{|xB}S*LoIM6SKcKuRe> z!pX5Pic$nR%+;r;GE^tByHh<)nyOc&sMbg&r+O7*D(@qgQ}bEbsgY6t%Xru){4`EC_7X2E@LvvI0 zE|8#-rvLfFn=aw>OM7@>-~zyL?4^ppp4F2BmjHgK?k<2p^S+ZLRA)91pjyXEtjd@K z^d1{soiUDDmC-zos&5|P)H;Mty<&Bzcn<1L4xj1Debs4`0-NdDeM1=z_M&me*HzGd zW?Vt(2L)6;>iQWgI-~aFso(M;WA4BZ^asQa6)O;a+U5zz^4!7+@Ee}NF zv1qG6K!M(XyDH3`;HB(+2xwm|oUdS>LY!eu177Xt+@4;lB6^+s^G6-g3CV~u{1^5y zsXL~xXe~X2xpMR`Tgi&SD|W=BWIW@e)L z|71L3-^5209Qse7Rc5{$O2KH4^-ViUChR4mxP1Tq~11B*>E+K zMe2pCBZZ8o#AIR8k~uMhrJcaf>yZv0Q)Y&!A}dMe#0*uv39SjT%&_hVscv{0%rG64 zP#}rn-B&|Gg(Sk|QDLZD%#ajMjbMbzy!!|5|pAJZCREavBOZRkLgVcC{++=ig}E1 zRhS1fIj(_P2!Fcpktd3ILS_JDs0lNL(h&ty(Lx8H$LaGtI~42|D-bpJM{F{$ z7A(r%oBwKc66O^t_5k(uH>>ks(7#CW5NiMLFR{tcT!j1o^Gj^H$%jq@cEPe)s{LS9 z{wtQXlUyS0Wr}>%@UNx4YkDG{p&zqMv8T-coSxXWq2?a)jWB$BdRlZ^k!U2bCVxFm z!~c=^E>!db+}jV{S6m^ABwjS#g^CN%bj8WVLfD}nQjY&n(JfST1BLw`tU@Vh-X8J) zOwoz@>LkobFp^N1MYWL3iV~fgtoW-Y9Tciag9}BTInkiG)5JvMAYl_F!o?G)M5KY@ zAz=i@S%9=YZ5Yk6tzElLu=uvM%!HP4q@_d&v>zts1XvOtQ&a&|0*~)8tPSi0l|TdR zDp^o$REJqhqkVxqE0Qooev2;lS9W55MHl>(UD!|2h20UwtW!P%HHj;-Tj`)EzNb6t z#hSQZdu4t?LJS?iU@la}7$ENiV_-?C<3ZDD$mOA(fqV@ZEnOFRMP!6b>>KK4q=09X zX}KAy=|*Q~P|PfxPwI@rBa`@ejGZp_I459_ljKjt4kw8h;J79pdIQaxWKLFVn@S;$ zYau6u6i(Mi?kXjyT0v5jfPQ=$O&5$Xp&y^n504)yHhvWLWDzZ6F)amjijhH0#p#48 zguD(+p?*|PjHVlnjx0MF!;OWo5yb5=X4oTP4xyn0jS$rY6P1qCgGLscVwxDELX9jd zhz@M)pl@H?0cm4MI;cf$Qi0conw!z^Hi$FA-*`cUw(Jsk|Asfjih4g1PrMaR{18j@ z74J^iEo@fEkIAPk>e#WZu$Hir9U93FjbMj*wr2pw!k=)Y>Cg*Hm^l+#f`ExrS|pl_ zaIa>`m{iasTx2XBvHcOBte9>4Eg1Ti^Ph0uN6;h6;ITQ zCr*eb8pRTQ#Rn1&*haTn+N~ZPhU`o?go7O#+YXIshsLr)W7s!AAp8j_cn11o2{Zo( z6hwOI8?Ht zZTZ^jQlhpD|F(R_C>c?{o^e~gq>Q2{Ut2@0?NBL4Aw8 z>PwtKpd@-xa&m(q7xw6aDEJPNY81VDf4Kp2j&feGlVtR!5MV0P=-uVyNInfRq~yh_ zIRJB{l_6swXf2r@&@E~st4iymiR#KRa39@hG%sb8me&W|y4#3#Fhmoz>;ZjB3x`I1 zD(K^eiU?RhT1mW(ga(|hn$w183eoMOsYp|ja?)7jj7L>rhz%g2z8g(h6*>@&Ajngb z1M(|IwJBhcsKGlbPWqmTyJv0)7T5;!uE&?s|;X&dN3Rv>MUvs{pRs9cy_2u9S9L9vwu zlj zAkf@EMWAtooOCd!(3(o^F61XgIkwLdibn@XqXIhQfT#SC7O=8oZr5oVHM(N~jT+WD zt5dCxRYY@-D!B7*J!i7N0>=o7c~(5Y4z z3xMjPQs?p7`V_?ePr;nlX?k6)_|CPu5XMe4fQ&8(+C|IG>!a&+)Om#e3(4GBTL7_2 zB>s^!b<+J^QMB{w?zBd_(9T`SNhclBRi)0ubwa9ZZPAGk|8OyMCPJtA{cqJ4oyY4m zL6Y&$gr#dotP82?JW5w=>s$-xbcstBK369eOHfl_|MahZU3TBG(Lb6KYSd+Koz_*? zgzL15!0e`X#N;p1U5*>qu`-S7BCBI1l9r*SQQiK)PpgwScR`H5sr@%aU60(Q_Z--< zZWpyWRzc}5>C(xPcct~a+GF@YkAzF@7gk4mJ_!vi_M6n1wPL0JjsBMc|E0kHi4>3| z+5jG4!jT=tr0YrHs3cvAysARil40uMLVa0MshTcFB75oN1r|yAKDs=4BT1662b+KT zVS0BuLs%@0o(ID*proJ@X|7M+c#)(prYSPetDF>FO^KmOYSOpTl}R;qK{ZK9x-@w$ zMv^Wg$-wG}E~!eFAuj^~o@5YuPZ|SGr=Yi*vjfMNpB zi|3Gu{`d?)2>~++m_@*B0!lGpptsXuF7Q_?2y7w%y_OEm?~+s#0gniHLBLxArear_ zS%d+jn53qY)C>YP5wMMbodoP5U_S=T10;2jq~H&75H5!aI8HK8kkm;6-VyMLfGK!e zz?g{vb16wx5U`SfRRpZTpp82c27G=1yqALq?2E&GIJC#10}dT=i22Mwf7C!RqH&1N z*ckYk9|J!hWu)NzY#ffoA?7jzbD4oT%OEUe5SB9L5HijsU<(1e2-r=)UINgc2f)ym z2*58HQH+NqCE&>ilKM!%4+5qU8qFhM83F4E*i1kj224VJhJgGHr0g~UcL;b)z)J#N z5g;J{JVN4f0t8&xj8mB4c=N^3Mzg@_MpE%I0apmPO29P&ZV+&jfJX#8CIJ4-PuPh)c*s{(b^Y zRZw572I-Eh1=0)D1CnE<%D}3df%lyZd@9J0!KMG7GL0cde1<;8#{h?hIP8T(!qnb4 z-Uo-qIK(erF)*_kL|d5ReEi0nz$%bMV2ShDIK=N4GVrospue1=82D{6h8>RomA)B( zOYs6?48rljI2?jQCmeEc=!`=b9J=BVFExfcj(gzH6Ng?n9EwA49HMhuiqYv%fPo(w zFz|6O1D`N6xVR<{he0?D#$gB!Lva{}!{Im#$KePZj>I9+pnM#Uz+of~qi`6F!x$XK z;xG<}@i$J20#pAIm_;CKcOGjW)OLvcNwgLANzW?(DLz*d?e zuD`LBW=zC23vfuRbO)7AtTcmIX$G;<3}U4j#7g5o4+DY|E6pHQnnA2IgIH+>vC<5I zm2Ph)%810xBS2um=abX|0u~amh=9ceEFoYi0Tl!+BVaiJ0zY6SNv$GaH34e~SW7@9 z0qY1@Pe2s`)dbWKuz`S$1PEM=%_JqTcw0$|_#KSxBvnhm4gz)(Ah3;fBqcDBdq}FD zfc6IS|22JjmW+Omfb#@gAmAba#CT)vPpph4T1MD{V1@K=*^z&;`2Wr2O1w#oFUFKu zy#JplPof@)N+fC!D>^(|;uR2+fE7K?CF*T77JZ_4{z{Sjl?wSAKKz}A_&e3`cgjE@ z_w5B0vC%hlT2h50qv&6m_st>5>Q5fz{f8qsrdvf zAYdT@iwIauz!D6Y>j@w}KC>%Nkg=LLcIz>~lP5heFu|m7D2+o|9E!W%ia1BikNiuw z8avbs16!`%BPFKrNq0zzKj?p#i`c~*E2&Qr31v3pwPBi zlJ=v!JO!^qA{l`HG>h!a42#6n=;Z8}Sc}NWjOYYA8+2<+cCJ}`YPJR3YmiBa*P-CP zAd9H9$cz{&Gb6fPQ5VfK^V+xWq6&;cdPz=$GPAOyP)#Np7NTa!>2@~4bPT}&n4O#!9SIjRp}}BH z@ZsVl@if6tFm_~iRvNnL0;YCnm=VQuy8`QZO(oJ25%SEHM@DQz%I$ zgGR|sb8bbqyHj~AI3?GIX zQ-#sZ6qjj0R7n>_Q8&sghK3%4rq85jnKNY6X*4FwT!IEd(s5w;t2`JOHBn$_8!%|5 z4DG=Tnl6g#=rgqSNQbISWrh-tGgRAfF^B!Wgd~jx+5iJVN{yr#OiM;LRG9^MAbbHI zCOwD6kkO*iBqY1Q+jZh@yJ#0{|WVOY|)7O)uF^hOGi0BA+uSO9~lDl=3B zm?;31gJGD1^cg)MuAqyO45kg>4&5Cj&e0X^lJZ0Lo)8t_v94zn1FOuDK$ z3{ZkF#v?F{SdhV_v!IzFl;j8sSU@x;JpoM&%?3SR??I1cp%^rPey&h7H1|qTPdN7u z1-N3O6p0ELM&|$C5I0~=_F&RW3ji5K`UmJ*9~KCGI_eo=r9%GAJ5u~@5>2g8C$V! z>}?#Z?QHB#KymuGI{TnYd%S!(0KGi;e3rEx%H_ zBA6c*pC6e87w$!6XT|dQ#>TO^S+NjgdI!{%yxQqma)4p&lIdjrn$MfiRgwZe1V=ZxkAZ5h!+sVL-kBp zrYu84RGEbk0FuMVo*XXU3yA3F#S6ppz@`_9J>2}<0)aHXUR)QxCyN4fp*m(fA6lS< zi?O4Xm9@3Km8G?vgRPCdy{&_#J)WEkCM1t=85j;+^9b<|By5Myxn9HF_#s}dJWm)C z{z8lI?8W2a+FZl~j*lBK!xK}L6X?r#cjNGa0^QIW!g)RcFghW+c(GrQFF~0T3JVF< zL@W;A1-g2m$0!CJR}`T`gBEoPlnxUV&`m)X0=r z)AWqAtTa=&2rM$wgoScgI7hfFLWL4+4LNbivAK~M8LaS;ZN*}uXzplb>uBZZXk%mT zU~gq@>tJhbX>03fZ|`VhW$R$$Xk~A06>DZ~1Ja+1RuS6{7EUxQ)-LWCGjY64X4kc+NvBiX3Kb|l4W!_(dtuK>XsX|rz6Qln!*PvBE5(zi1eDZrGpR+!9sH8 z1i2EX!eZwHf~P=@OX>JAnj-x7Yf5l{xHWKf-0F*@41y2G$Yy&&|6 z&_a=AuDuX10sIU7$zikk0UWj!KhVvW697X9FTP8RiA~J{Qj=TP_v@ZHodMA@%|kiPpDvum$YJtOj1%pscW}a&`0b z2O1IChbcM;Ri{9+BhMQ(_d!+)2qR{V98o@(Xd#heYEw#SadB`DU0R$mG8U%3ZobZL zfhH_IAA8tvIi0YaMJliaHK0>4XRu6o?tEAY1Tn1M1V-mCbviLxzP@g-u!N?|8BCXR zo9S{8N=k=2S21^CG{F#=327Nw*r?&{C?*(e7Wp`ZQ4%*J93GeBi%E|yK&W8#vd!5J zj`r4U8%JAfTaaV6y`8P4gRQ--qqUWtot1;7rM;z9Y(Fr`R#=k7tsGoyn+k)0xdVcU z89$b>F(2J|D=5UK0aMGW9f3HRv+Zqd9Br(D6joMN4xlUS9qk>D{P0vD>inqk{h$&r~^=<4MRM6e*_`vA`|-#U7rU{Jt833LNb#5g5#v?<(z zX@Z5u1DEhw0|&C$b|$QTEO5wh7NG7Q2n%)aAgBjTOxmg#qt*!BHiIDKk)sXD5A^Z! zZCgPYu{Qk&#mGN!bK(81hX9B~W~KlFz&Q@r*N+3fhp{1XBw!347GWet#5g#EcP=sx zHr7_iPezVafIrtORKy-w_bg*OTTna#^pUqOGH7;e8|3Q?nLy-+)s^q*gPNo6y}14^ zj<(cTxF8gg48Vced5Y4~x*0xq}8E_i?=nxCGJ4^x^cN256ms_d53{w z5xAH@CZVtao1i6jpW~tv;*uj_djT07@efV7175c!c>7bf~&H?xa#2Wx6 zBPA$qJIQ9voeRWu!J0y(1B2S>Kwu5g31U8ifNBD@^j_BJ>1%;idiJ^ z25qb%A0Os|$oU2Rg?OTZ_R@)R{)upkwiQ4mkv4?YF4|~z~zNC6zt^!f&_kPE(l;O zG#Bb5D>yWTeJbLMpaFI%Tw#g$fcj`7tC%%_E{Pd}Qqc@LDNa~6KCq((VsO2Ub4^ns zGn0@yG|n~Y2f7XtCcP&LB5l2NC5-XtFqt2n9GM!=hx6u)*fDMD6`u=;5g5BmSl+zA zpo;9PKxMa+0UtL%j6WbQ)KEeV3pBDq+J_JcG0@cw6uS!t`8ghLJT5`FV>7m$wFA~H zqNM;bBfk1Y3=$(ZUakRwK^PaL7Tfbw+!YouNU(#%=LdE+==gy6TK?{!iJ=D&3qA|^ zA!27D&i?*B9S%g?5s!JuNn^1stwb8G6Lals$nq4EL;=(BIwv#(Qow-X`**G<#}>8^ zVsas10wCAfjTRj_;T-|77Ix+~_O{@%vDx6WIapdj#M03U?MxkQ!GW`fx!c;t!nu;2 zooMsJ2@Vt;1)x0@*;Ki6oqfFjg}$-20_V9aSAzKeNDupPz^WqI14h7FfJL2W!penX z7*?K8c!;|szO%Ek6rM_mQ^!33^jk0p7}$SKpcl{6*Nx}pBI?DL3f>|rRnA#Le z``uqqI|7I)VzT`JE75^h0YN^ns*yLthjG2RtW@w6Gx=F**>;-uoo|nHLtQbr*&>*hh1E7;I!KBD)5wZ(ys@Y^y z?Q9QQM0DB{_ z&ygv7@=R5z?b^|oZEj=9wsLf^u>(ig#(`}QJ8DNOpeg7kYbyswN7(RKgL1M(n@K+U zbPDW7#=>QmtiF)Mz6g;dKOZkY#7E?IVhw>b11AtZQGjybXazRc#*wB`uj7&WY>EIKakbNtur^#6 zroHwMRteF4RsNf+*xCw>K_sD_$f6TEZ~@!CQvlVF#0!r5 z#Al5*ry_L^$LL_~k-7&T47PxHL&;A-8JKhEkO-(rI49btIAXQ|8c-zWw41XXtzdnC z<$^;82iRp}_KMi0W4$u2@ELXr^4eGQFFKC^8&r_nV8sf2=e#=$(nbYTNs3d0aS@_y$Yt*?hvo-`4e&gVEc=| z0YaX@bn!Sq_>GV*o(Bj%bcCDY2LeRi16;VUzk*QkJPirnzYsZBE4CXOJ)!7q9f+iH zJ>f`MD75JO3Als$h53@h6Xdf537d-?e)Jrqt=G1Flso7)%wgyP_1e}4T1+A%Dewfr z3APbD8X)%E8eBDdF;fmq2nrSMFOZTG*krD!KcI~)8YeK26Na;mBVo^gL=Vn#A!@-A z#=|W~;^PrO32jXAGYB**gb}=80*~yXv-s#iM_Up~(i4$0B0Aj@+tawaincV+rBFGL z3H;>|LML63oR}1woCjMR7*=@J9GjaC$8*N|`jBnPYV&Bo;J604!hSr^pXcx5@53@M z01T1ry9I+!0S=+3zboIx5qVi4UM{>qKG)OBoo5_uiq82^+S4r*HdM%F0cW#JjDt;B zg9o$V7|?{(8&-m49P;6EA~RCq1769*LrTevH(`;dn8Y06=S9ZIGIcsUByHhiV}OA% zYDf;GIIgbf@hUz81Lg^Z2;(l?62Zd*b89;*wk4cFTeI1q`{2~o&IfKhD!qiIUc?oFhguAjV;Gb&`g z$tn%=bAf$_ZvgB;_~0RpE!`@UmdF|M;BXS#{gze#qKEeYSga+~&cx*JEf$ ziXDbF7aw_dK6n9}Ao~jkksfaF8Uj9GKz=r$$hH%F_fPokJ$Tj$Pg2kmuDI+}d_KzynA>beM{7&$%AtkF<+B~^glrW%%(b@ihAxC-h`omZ z`c7Q7#L*;gbNtH}J=*yh;%|CjF9hDH@bU5D@{EyoGexu#f4Gi?1rDQ0oeq!CQHw4f ztfMZF)O&=6@;T04a5NFfMO#<4CEJ?9=fF^i&xPY-v(mv9bXex-DUmzuh%iYzC>0P+ z^0*p%m;z#0+2Y3ou(X6ethoEog|h;k!bSz{3jg*{zXJ<}+`(HBkzye`FRnlA>){Xy z@Uyan4P4tP5-|lGj1WBL##?fv8bv1-!rcRG@`R6dflvvN=-d{+TugjcE)PF`?wAj6 z6rmDmfk=inBw$R1UE*yR-g*cg*rB}#_BgO_-qi!PApFck$R^AsIIKdB0@9k|=TBT; z^fE~M9HitCKkU!~65C6oNBD@WL4IDLj%X($L{@b0EWW4a^S%EUY3~6aWtIK^4@3lP zfPkV{hMow7Nl#QHAq0qkAfYZ|NSOc<2qhp`v4dr?_bzMit_91gyVkY0Ro5=MwsqC7 zz5ma>=X0L9^GU{afB$*CU^4GHbDsO$d+xdC)~9Ofer}dP!thErsUi~(@zls`#q5cb zWwO)XgH1`e55r{=UMDD|h`lL>Be-os^+}UuWS*0Gd;~WK&~N{nWJe_r@Nrdw+vMi$GYaoEU!IV zN_8q~W%f#Dvul^u$rN^Ta!Ga=InsCWY?m!kLSiKC^#7e{OcOVjDjlsWQor2qd}Hc< zmbO3)m0A`{G`GxO=$A@K;mZYFoL?Kak)WzFH|ONCcCti%liV0XmD4oYg&h8_eX^vD zke@|^Wv=I~MrJbs682B4kX3n8W=?et_L7y0<<4cKWrgJy`ju`q*L3lLv*X%P7Bv>- z>V&LJ0_d}S;eF+II*jHmz{Y!1QEGZg$LKMIQ11qQ(rUM4pkzY!@O0>NX1I&wF}RHp zd(ASpv{1fq)3YvfEKE+D-oo6i<)g_;M*3kFI09EIvNKn6$#EN+ry>nk5QI9lTlrf$ zZF!SxsdfE*PF`+FSxK?1-7F|9EtZueMJ0(+87;^!DU{JJSy+;g^%Nz^p;Fe~`M5b~ z?G{x}s&YLu7qW`QO1aqDk$4zy$(l;z)}M<4QuBmjDSpf%tz)DkpP>iyW9nlkxgMZ* zfwi>~0xhj;t!l8(7EX)oWP-{K&LVfpad_iwS48 zTwf#l&bg0vM)GBp-_NPnOrAcqvPu%`n_)y6+6YTeF`CKn-JZ(v)l*!0MLJUNBM6aq zL51+ZC)@N_dMq8D z&%&pYdxw!J`1P@pLpo=qy_I$+jbx%LGIU>hekDZBlxoTHp!}pBSZ{GmZuFLSU+o_jIykbGA+|`$uY&U#17q+^twv5jDE{SBFPTeoAYgpdm$Dw2_DSNRz zB)M+B4Dz=7bzVGMDszdYW%>c+a(~k>&6r$Ph4BzqNLKulekC| z5s@Sz=)L$!Yd_s6iRWszq@{Ji@|J_e2qZw3>L@oGRcBit?PecDdDQksJzpJ{tC}j6 z(pi*@IaW*;SEiLr(rU4~Jav2;mf)wBS@;6eg=BuOfxo=$>5xr}zUs@bT^*Dq2jgTc zbE0c5L*GS%mOCj|w`i1u`$gv=WdD7pP{0$b* zaMw$3+xs^OD#p6$zqCf!%`!@)nLf*iV#Pu^`JMljg_~jHmYTGY{){f*kDBJGvL>mb zrYc?#OFa-AntguOwYqH;GX3hcyLKhGGv9K`qBxn4X%_i1j0la9hQb4L+icva1%wibwa<4Cx*rSrU+j<&>V`Q-`FV-_^d>sMwq@~XlhKh%G{juvfe-t z?B?g@%e-ZYtm!Y6HyJXKP&ZMQ$d@5w8PS(na9IOcEK3R!rG80)>@MH_mwU>SWKsrWEnr$j_v?MaP&+MaeIG~We_|-Wzx4KjotU*lH!rA1Y zl&JP4eUt8jAMu2KGz+rmpiGg8!>Gzntr%170!6HBjK*@zu`fxsEM2%-Vx5&s#f!Ms z#MVW$GdCntU~Vy`R8XIUXb^=L3?naO2~c2aGG{M)?p#XRT-yx;`(;6{q*Ht2_N#JZ zu9g$ls29vCt(4pIV*}nQT+h`F4ropCJ=gZe38L^3J)4PbN-S-CN!n@?$(AK8OO~u` zZqC*b8k!ySL-~-9TZBwbOx(Axv+Z^e+`0!B(!i@o$R2q9(0a6;@I`9fZoVn(-KNLVQpA!FD`($D7%i<* zF{?}U+^X{{y~DEIqt#RQ*O6qoIGmj*S9fPix`Pof_BvAPIs#>- z?uK=|QB$E>VcNTI4s4#;U(eh%*4w!pO3mu)*o7PLknLB6?mrigo5%3ukNyWPZb_{` zYBL*IDOF82#7(WLaa&k*XnFMPX|gB4@04@7s(($ao;FR^657rPyHYCFiB=Z)Vw0T1 z4i>cV`$>Qy{RBUkBZJ7(WqwA#K?kCLnw-q%c*%I)uz1wP@V|1l;e8x}pFZ*7JxVJ2t+&B;dXjlTS8~eoy7`OiWb;bYVGP}gwDVPd2}@)I zZc|g(9?8&!trboUtFn`y?!sEP^e{?zYO@|J*&6Nk?lAh5uQ9GrrB9l0R%n$uRjHy@ z3&RhxI~>zFKB|?VNIj?9)npTC(hjsUEr9-`8y||iO}6{Xxx+LXSFHPj0)LIE7S41>cX#(c1Gqlo0}n6Q|6a0>F|f#h+lKs10Dy%4gG9c(mHkW{#r?C+vI@BS6m~sw4%@ zIl8bHBWcoF=t#VmTZe5nAlC~A7OG`f z$Q%1unNgJ}N1C|*+Tf}0i)Mo(KZpI>?XB-{{!!O=pzLkpuX>`4POG)q=z!$J@88bs zTC;;!F8A4(nx=<4c2=I&m`YYpZMWggPH%Lb92#DE>mS!<+7*>V9@X;5+Q8m(Jh)riK1lbO+>jB)7h5g34(0st^7@M)H zB`9v`X!{XH+3i0`qVd#7s?4&~$OwXrl{PMv6J%PXk(EWl7$l8QZ7u$ckBs9lS>^0@ z#<{^)>D5J&BjWkeF_B@|6w|{*#CbKeEM1e`I83&~r`DQ=IBNf7@n=h8(rrPItn;ld zkE#^-^;3RA0d2Y1SgPY?0f4JIW^19(sF~r0CwIQb< z#oQjF|JI3=l8_oEqsZt>hTCPl(FW#f=e4A7s)?(F9^f)8u3NEf6eLwBt{Vn(cKsYg zGGdK#&PBX`o&+F8ZZUCKNc&G6GijEvc2?)Oyzy(Y{d}FMmd|cynEx*opICQH-);M` z_a>3kl6g+=adh!OOiU^+bD#0j+=ARheE8z#g{`g4$>B2iv9NB5e6FisIMN;E7au-< zeq((>eE8)2xSSW*I8qh~%Fl*3+0xD7ILKgyFgNxaeqPctyfN9FY)uY#!xh7q$`KWE zNYikCEQFJ9Zf%kO4_?qBSC)fu=F55$`7FPZfpB-`qfC7bU)sDz;RPeGa$JIM2-2tKmaR<6K((!0h(bTK5PqoMotuIV zWmLU=O!@nRQ5nNXbB?LW;=Fua1TB@@EjCHpobx~I&%_}kzC{oFF23#1Rx~`)$xkkX z&7@ndDY=70x_Ho^_v9S6ej|5YlWJ6C;A3S&Yy40*Rv<;Vs;+rX{#@B}A?2(7PxG%h z8uoSjQrtde8Bt0!#VmMIkJ3)0g#!evdr(#;zII7#oy<)wm!oB}#nTRRK7ZKaut~8#Bb7SG3N-CJtzjc|$22m5`zmi8+c5dyW*p*&4~r+f1w~`P!8&7?gXt^EGcJEl6T}q14%E4&>Uju0 z{_7aM9=_+TSr$I{#Yq3d{EYUYM^}xLAG$)71)5W2U7qZ2P7A%Vr6+v=Zgj)kZLAF`*Lcbn3F8-@FOwe#L-=dVrSPsTQ18H z+{t8qZ%_2m7nuC6-I2h!Yl!8`Fe-~@3f5ASxmtH{N%^@HkZ)L0jjTV4F&a%xb$@a6 zp7bAG&(THv`}xTQ%M7=sEFAxgrb65bkk*BZ{bb0L>E0FE=mV{sl)fGYMP|*C#y+j2 z{E(|1OcWhBW>Yx9=#U=-w7|l`ifBKY_P0a#Un-71<^Fx6X;Zx`-J-Q%U&VA3UpqY@ zq&3y%`u0{bi3dzwH!;;+@+0hWK&D%;4i%#(S4g*557?PJb#}bJxTBS;v3*MdqO@kR zD7UOQQCM8)j#MltlTA?V@BJ(t>y|m{UK2T#(65n`b?J%HL|L@R1VhSFhU2Pa6nWwV z*I9Q1h^f@d)nUEuEd%mXUH?S{W5HFU{RS9#7;P}~ic+U;Nyt^VMlPKi0%}ak=^PC* zrPf&M!s=R`Ru3g~?jev9Afh_W;q1ybU&zu$7urj-A4N7OC$pONPSx@UU%Dg5xhO79}?d)K4hqTF(l#sTP^?j z)&6qFvfjwg2@I3&P+K8XUoXbjez5&AfC zRVgbm!wd_5WxX#>XmktKTvcet=v|K<>)9mzDT9}r4oCN#wYGDrqeRE%(xUcAj-Vf5 zzFQ7s_oMVKo1_JHjaYrliiD3Kck1i#e$?@6ZDpXqK2r?z}xm;n- zQo8^C$X6Et_@RQR`A5_3PQ90^WC3z=WW~kR)&uq z^W(@mlbg>oxv9^p*Y(?$$bkv|G~=`e)$N{8E-^Z8*P;YFzzdyTS!@yQ{&W_VkP(N3 zoakF5)+=ka5~YPD`NahV1;u%#dBw7lOHPN$E5>Y__pzx1;oRu1^BcMr)b|IRp-Tax z)S@$<-C-tfN=t@-+a7ZiRs?S}vieQtn^9Av!%|$0XxEUOO-hgwHn4AuWrWT2%i@AwmiDM^Eb5i)q>_^XucAFv6rl8WIz5iuUM4CLwuV|3a z+3{}<5M~%0Y=2WT_V|mnP|q|KuxU8fWRS z<#Z8u=A-(yD3T1^Z9Mp!3baO!!b+7yU@?WObs9N!J6Jp;eY2*;ElVW+^rz;eRTn?H z4mr7d->*|)8EYLDuXmBCTbfntJe?JP>Z0SFw}w&Z(nIT5B91{Ltdl?%Nb6CFz7|UR z@c&W?{amYz)o4QzkJYb{QSEv;-C|*Kx!*CUXDvxjv!%JN)eULXX7}&Er-X-l_LtG6 zmgQ^u`=K9gpFps|V7I+HGE{U9&U z>PE9XmVMF})yxalP`EP=E2W>9c5Zjt#!Y{`cX(N?@Y1_lnkpJNz+l;pv_@$$yFXP! z4AR}8c&Mn8;hRq1a;8sjS$n2!YH_ZtYb?quYQHOodXOAmU*Zc`Q03WV~D3FaPZmFOv-j?k`#1 zpODF>Ar-C<;eh;|7?R^+81#3ssosJKu^G)0cchOS)WGbXEXl5zCF4e}&9|ZQZ0QF! zEnGb;8bjA$O5#q><+OM=xE>9@TA*J!wNh4gm$}Llo!HvWU`sSLuImWgqQ#)*%h1IXo#mI(6sM^5 zD%w4X70xm`r>o=TVy;+3Ht06X+04;;Z@(Jf^?j`Kq8*{AY1K8L&gwEfEFmuK#EMKu zAt`xjhK-7z(eVYT zPTK}I{MrpAdzUD|1kJ^w8g5^?O7u$@LeCdD(bjO{`h%0Nt^F_Wn2aA zj%$%dPd8Y*@jm~{_Qc&83TbZF58=p3Xf8*b?~#>patZ=OUC>|^ z1cxoHGAt~iM)oS_zin|)#G+MoQD-{U9d>hHlA17;x|7JI5j1H0YEb{7q_;oap4NLX-zby zEXR$D)UI6OwY~raiJjG_+l6E&$ zlufp5T#v4ZoU?AUh=#KQhu|X9|6#S4KRHY*zceBKqy}>Z?M&NZD}QLuVTU(<+xBuy+ zKN}MD>fGUVQHN7X#O=PpW@mrayIY*@Mls|;Z}Myt`70;YylJfMrf&T9JrsmkY2_pt zp__!GwWn3cAKjHSPY6I!aCgIveTlMbG zd=oX!LH~XygtK#^LFp)#mP`<3T2;K=McoWLK{sXEZCtk{(f!bk#kuD-q{O2ozusnK zjwxE@APY5Q+@Jw#EW$MvHQ}0yIdkJ_ZS()Osv^3YBuw3CFcu_9N*f%JzCd1)9HbKU zcvk4ItgG<5pXDPzll)W%l)ha&!eRhuzf%#Co$n{3&+^;_olut_=zMy+Q>#8g@Bu(8uGBm7_^rpmr;J*MQ$e}9 z!?e`_;o<-{UN}+4Cfw;cQNZK-*0wdr0x1ik($^h~m7$$+Zf?KE`3^Z{(+zF7vxjx3 zy$@uQOMDzFB^&i5+Aq~KSK|5+;}UovSaSJtdE#;M|Ls&(|6?ie)Kntv-}0vhMCVt! zbzW2VlUm?bM!93f)0?gIhQ*#)CO7ANkZ&YY?X^D($%f8duQ2UMpOosbc-+=1Z!Ero zh>y%T8sZnBMrIrxeUO?{*Qaqs#VTo(sv8a7`S3#?z1`5-EGhF9SFP18XLWn{#1jVd zckQ;TskU1kl4L-%)2g7}PPS{gtv#Uo|6H z?K3mY&PFU~S)3fPc+rXxi<%cMT`JGs5$kcTAT{?r(bsc7Y9cCZE0&)wj+$xiD`~tE ztsVJqdwu)@61i}j-ke-8<)qwzn568tgU+;(hne|B`^ywws+nldxKl^J*miVDZqvf~ za-4wfh_@n$*4O40Yww|r-e`qwbyV{q(MZbob?%KJi#gxs#hF=^ zXLYRE>diM^df~g&+g!*{{e9?+iLRe$?Fx{t?h78_lvuY zIj_t4oyVQA-I?2-wawXEpR?7uT`$=3!cLvWZ_#msTyD$puf6{2KVN?3rAQHU@S8kN zULFPi#jniW=d4)Y_OS3>GVon9@ZB=-cn01t1D~0J&&t4OXW)Oxz~^M(2V~%LGw=g5 z@Y)P~UIt#5f!Al?4Hd|?KDPzJsz18>g27iZv0GVqo*d>c>N za)+~G%QDEf*%xnkrg|_{!Dw%imgriY#*{>N86ui?^&_C(mvaVtk~W5XWDyK z?B2A`?t|X%eX(9`zH#|EpdIS?pbUIS2A-3F56!@xb+vtE#YVJ+Lb76JW$9mM#R}2^ zK4ryyfse|-D>CrP47@4>AD4kwXW$bu@JSi?P~HVjptjo;m3R4xedS5^Db@pC!Tk0!w31KZ`Fp+@O+4Jrp@_(=Qyhj^;x92WONq_yv^PcHYKJDhS zzHO^E+4J6QLmPgJ=R3CHn?3K-hWGGAyHgup>G{rWxC2?Sdoplem~FnxiuufL zhx^QEhx^2~!`s@S6UvIUwL|4??NE7JJ5=7*4wbjHL*;GlPtl zKGx!X=3j^5{bJ$m<=PDy_?;Q}vl;kX!nY6lM{9B2Z!^eu6q9W)J-svVU4(BRTLG=H z*jiMn{0#D=Gw=x+`0NZknSmdgfghiNpOt}Moq^vWyhrT+el?F`@6l|NY^oW!IyO*_ zXmnF$*qWh#%Hp5gf--liuzgOg3o0#^ukvMG8oqKTXxX2MTzPJBB6jfN!rVk|Noj*T zG@&s+QBYV`D$i7qZGL6R;^O*}f~KOvf|4>XCg&hD$cjnXotnEqp4OCG+SpK-SD$Pw zYAj0>$gE&laejU>kyq4IU(}RnNEYBnZlkLFAip5Dte`Ma&{SGh*HqG2Ussy%&xI%~ zEUT~2E38kHHToYk$+HpU8NDm?8jZz?hT_7!#{9gprpAJ%lDyJnVQE8Qaamq|eQ`;m z!T+Q|k_7ptyi$3(Uuk`DLh_}wAX!!?muhG%Eh|B3Y!`eBGcH=luXnW%A+gt8k^(> z{cqfJ#TUpxyM2sHwiVA+NEpu0Gk6S6A22RN7RJ zt09*Q@^X^}Wp!nRNh!;^#=>M?W0@3gqN$;{v_T4|IGMx`8c~j=CAs-cP5A`{MMe2V z1*HweQjqnfMI}WIb*0I=qWp&Xupp7mb@`I4ynH!5EK#3VUtg4LDk-jSD9*1hkSEaA z6=<=Dz34Ua3rcfkH%EPOS)!z|uD-FZq@+GsmZ&SMt1qc*ED=-7*HqQ5Y;AF4z%I{n z8%pyU>hl{CvR747S0|a9EGej~OV-yFl_ndD>+C*c`KT*MInYDQPmT&Mk=+)hP4d&y zqNZeFenUfPNn>GN686|m9_QtjCX$6^MRImROBA~?JT%a9z0T4R3y7;n;OJ2WfMzjez8xR|ACm9`%!*TZbMU3gP3EJ z6q*=LQC@vxK{A=&P*PuCnoN|HXb$+(U7dU)wj=iv5)|metE88;c6_3L6^g)b8cra1qWc z$SrAf|bg4SC6e{GvjsG4=UP1*LUzxU=bBT(_jr{URay^OFtYR^%bJi9~&U zW2rpMv0iMgShfolG{QglBUpWM^6JFX$P*u>dP}uys1vnv%u7jLS)M#Ora|huO+Dl` z{*22^2g{l(w0*@3Ct@;0(yE;aCdghyQRfHOireb+!h`=<)(HO zhJK`Z^RJH5u-V@ZSmfxqi$*`fP>4l##)r)GKaW{NW_;^a$}N&|JdAeT_^5k19!AFl z6?^Wk+hv3T8}TyzOO`6P5hmj|j8|T+Z;_ry$11Rq9+U5fp{4yu{(Xd!HWFjr)c&{Tzsu*l z7OUVBB;S9Kf>(&2kgwoh#7FI;;7j6{l`8mw_#3dRPGSe{W%=BIeAu4&i74OQi61>% ze?N@)PXm;f5uc9yA4_~|k{t@!+LE>LYeC}RP z5%1oh{8i$wwkZFS_&=>ngSg!C^F-Y5w#1(X-d{i-FDF(0 zWa8hwJi|LcjH{=0}SeqJ3EiaEI*?+q- zkheD4A)D`X>47PG$#sFeYrk|nHWoXL_>U_T*bIQvgC@s+u`!Uhdw1xjfKR~R?rl@R z-E~ievWEgb5r4b4Cj&ky;Qt7?)AJ05mfj3_n4j+j++r1nJ`MO}{O#Vp4!F}l8V2}F zz^CAE_tshR#l6@bdIa3*nT5EkFY$8JqkaJg@_Mra?(_`m=W(on_$!zi97+5Ge69+( z*`(7nCE!l~4|}TqSpkR3@L$vh+{rg1{}&QJ7@4$+_+6-oM+AJDUef=6Y`~`n{KSCI z2>2NRM@a3zJwM}>$)Idz1B9O6Hs{l(Xj{`+vjB9g!PAO$v)Z1;6uo$?BjpN;Z0 z-(vFb;C`)c8efR`$85&<8pJ1nu!lh;eC$P zX#DRX`C~?^o(GAaG+gXVe~tK|iuf3Ooe?EeztAFFumPsAs}KU_zAE&Smv#P^+`itZ%d7ykA> z;(H8K`M(i=V}^Yi#@(&Zg z6MCK?{vFcu9P#(iZoW+X0rakO|6hY%cM$RSkbWLF?tnNs zkK`|2rh0fhxfkwtB*|aaU*#)_FRNExO+4!WUos-?(ok~5zj&V z`~va!(T==IJPYysTg2DR)9b!Z{IB4j5WgS&nlFg2+fMa-OS~2B)X&5pLp{nuy)-{i zP@sCc5??b>c{k#pbyeP*_&WHvzQl825B-SeLeCK58&SW86Q2dYR6zVW^he5wkB6Th zMSMq#|B06%u9!glD8!Td6F&iVJCpdaxUady{{lbLK>S9uBMXTynWy>OLi|RQ?@HpO zh;t4l{vhI_qlo_mJtq*Ke~@1H6yom|DL;ew6BuVZkNBPNOP3IDE>}H&BK}wh<<}8E z4DJ3c#1Xc{+QDS zhWavzcoY0X4e{mORF7My>|U0ihajD`#E%`Tau!FJ{Dbhri%9-0#B8;IZ2S-D#`?OvAtO0+K*5dQ_~zl`|JsE=0>?*Tix zf%vI8dcE6-Ka6qCO~l8HSNZ#ipRu*_hly`UD1U3U&kQ1d1LTJihx>`;5nqS?O9}B6;3J7YKT_|jlK29|1J%Skp*@;R z{4V&_>BLXlUG>i)-XH#_j`(|sKW&`G%H?UaM~g|m<5<H%SAGk>MzfZgr?cFED zzeD`+1@X;@i@qhk3HkXm@tbg8SzYw{mOqQ<>*ub-TQI)Yjraj*uX_`Ju~GH(C0>bs zTtDJ3!JdZ@KN@kxaN+}T-2&qGApR^PZsX>oi2pEC(^*CQA;i5Ch#!f1v_J7%5kJf% zKDVdppG*9Y9hEl_pM?6dkofzs{}$qVAe}3T-wpqEDDg4yOGgp^V7aE}1mZiQUwI1g zb7!mk8N~Y{{ydNPgYbKo5O1nhJ%1wp>^SAu5x)xMbqn#M5HH|R1bW}q~~YY`4r-Z!X8j9 zBRv;_!yQL_8m^lpJs-j!HWOcldcA`9odAar?}B_giul&$3f2)Hinwb7@vGs_&nA8) z{OU!-4?%`)B;E}MavkxU!3u6A{yO~aCgNvxSMUJwK6MHnB|a1F!qde2AwORt{#?0& z*NKIJVaTDeT+7m)lj@P{qLw}d>eYrPEd_TeONypHH&_<_?&&-#8U ze;)C@;eb2o*O5Q@Pptw}vxwgVhsS=n7WU76cz@U@`{8@@Reug$w-oUzeimK#*6}LH ze)#M?m9rmy1ol}$`YldE7!>Kh5cP2q$q(tN0M#RszYFO^xEAr*$QWc_#E+Y-de}d2 z1;Ish-812^VJ?xLF=!ADCixeU@kbE93*#Zj5kD7k>B+>u$Wm|y@zr?>&L{qN*w1Ce z<2xw0n)r}L1ve2tZ(jv>5Wl`o!F|McMn*nF{38_j6U4_O&Uv1AuiX{AO8gAi^V`IK zK>YRr@#B!5{}8_ghVwP?9bm9O5$}hFJ*$I$VgC8eGX1<2@!RGr=ludlj#1u+yw?4=3ISe!h_Sz`3etFX9ixm5(NV$U^13E_B8a<-EV(kzJI}Bt0`$ zDL;_7ZL&!cKYNtQHxoYw<TnEsX z^KgLy%{pY*rCniYGzu-Shh##yba) zjyyR+^}t<5*WG!7a&AYCfWzZ<ECiYmFITkc>olDB!A5ym9NmZ zh<6;QU>x!MN(J1Ge4neF+mRWtLvBa%;kVH|MAu!5a!Jy4Uq*dFF+}qJK>W|`$Vs>$ zwHm!|=J>A6Tk-xZJmc-{W$x zK?ZR8cZsVWPXDinPq<#cjP!85ez=S3;d-5@R?hYM!fwjBUT;MC@_lvNM&QQ5pTqJAlK{SnJQRC@(E--)J1w;++PLRZeu$s$FOW9-@B*sI?}%bvd9|Gt$9vVDFtSoyJ}=Xw;>NyJACRd71-W5C%?=4P;Svmdq-OAp&gCjAqW znh>_bFEZ4lt2(PZ*P|Efm7_SLeA@*H;d(T8s>-vyO-5YJ^=JtyH2cph;2+q3elu6~ zv;W+2p>p=0mm)or^y?`7Hz5Dn4$p(1Xa8yaF7}_7BK^qjNdIoQ?jpMG;w%MlACdeH z^OPS<@{hMFVEa72Q28+=KM3vhdg5Q9f^Hx_9|e0B@xe&Q1;p>&UcqI=OHt9UBK{L9 z=ncdl-&?_L#P4iSu!;Cg_>KFCKZ0_6nD`9TyC;Z$Ib6YW#9u(czD)dGSZb8Gy z@&B5*>X}S>s&QT37j_rou{k7v3G9}~ZO%MU_4B^4!;o)_Nzbp{RG#;RZBw9}_l3QS z_=NX`orn89j`Z(Pu6lSpr>viH-WL|DQ+^KVc?#{tMa1)A&sPvXH&6BOzOZLtS2vM- z#{nwO`@;6$R{1?7zvV3D4-(%QdU#*hc=k^J3g-+5n{?LXmtVar$Ob$MUd8NHRi zPx^C8m48CKVTy9z7xp>I@mrFA9M}Dscs1;V_l0$yuljjk*gD)V?+g3a7AnvC!nWzE zocD$O&`~+>3!991-eVf1Syo++)7xoj{3*HyDcDc&i{I==2AN@z(7xn~q*N?+a^0JY)6J@~sQvcHS5EG0KJah3(K?)6e_DMxtDJUszAXOS~`aY6OP7FYG|X zOS~`a+_8FH-WT=@;u+o-ws%jJ=Y3%@_zgLn*uN|v?&zeo!-yTJb(NW4#tCMZdKSfTP};)gXV=lxS7<|#jf)uLy6a2;|;!mT$U~z%j;h&KI zydSEnTJ=9odd|&O{u1$B;rCuAJ`eJniRX?{Js%TakguHgJyoL}`Htkb1^<3IfM0#vI9AR<9 zGmVE2hh6b~y^V6``TS;XPyV{C8J;XgT_w?X^D`TQUf z&iT9)`NsJ?9d^$7eA5z5C+BnT7UgU|Z=qdd`#B%^hUy*N?}DzX2gM)p_*muR^ey7o zAp<56&qV?`|KCIU5!Od~=Jrtq=*C3+I{3pR>3?~91&fIPgd18$d_Mfi!Nl*~Qo-TG zUoB8@4Do^Jm#!y1bfJO`#80nOa2D~8Mk=^~_`uy1Tt@uuas^ire+2!k8;E~8N5O5x z??eV~B0d!r=ziiyBO@OsJ{kt{1n~somgk5cwZDRwiSGhCe1rHF)(#S%0K58#_`iE7 z;Cgx%>Jit|*XOD{eiqr==;7__ITrCe>#=i4SdX3Ku_LAPMf9V0B|ZUh4%hd+R;VCu zJ4)wIus5#n%izGczL%liaeYTJVqD+9@1WmseXkm*d_Vlq+T~H(D40(CotX;I{7313 zabM*PBtLt+0(46v`N8n3%Se8}Fa@iL&)r?Yk;Ds-!N(K-67r`IzYq@QOyc{ZUUU6D z5$(w3B!4#i|24#a-ATdC#FrwTxs&*{LlpdlcxMDvD6MHClf%qx?75tO< z`AZeNLwphRe@NW+V|+$@)(i#T5Wfco{xk9U;9I~R&E68IM_Us=3iiq8pC7nf74tmH z-c8Emq-QPa%Mjuh<*Ixx@s7|_MEsJ8D!(`JV^J@7K4n!emEV`-4@3jIKk*X=seE`| zYga*^Z>zkPc{qnrYjQOgkmE`w@Js(PZ6#5lM6W?Z<>RC_xKBVVV;`=R7 zd7dA+6y<&~$uB{<|A}}Fu6sT4UC~b6M!W^((n&8L`Je9#6|n#B+NhlU|LPLuJCdF& z;85BBUyORh{{K4(`x{2erm2a+CJmy#s@Ua5j+;`1Sh zY>o8ahJrnWl+je9ECKzt6${cPed!hS9y9{+=ajl^$7{$EGD3>kbY z@s)!VaD00W4B-KizYX^ADDnG{KTi{1iFn{8;%_^rE3en}Ey`zGzqFaStzY_>xUDbx zg7~XjD)^50*>eXxBD`$T-8})9sejSzL^JvGBeG%Ud>F4@* zGb%dFC6Yf48N7`2{|)ip!Ni|O`VS}m#aIPg?zt_>x!m`uQ_kgnVTN+g!*#jbyG&O- zT<&)vgE>7Dw`e~-wJ2~-&l<#^Y=`+HRS&1<;xX-~=La}Kw!@?0XV?xcE@3+yj~it> z92(c_vK`)s288YK2KYm^!;SM*58Gk$-pbhyx0s=v?eJaLGuz>t+p0X<;Ty1rW%_kw zpXCQBU^^^_|2&-J*P~t>L;Oj!zw3#Ajs$KXzH46vXA#%u`Nm=w5bs&9fbH$p3~|~| zC~&s7El}WWZ`t{(pY81g*aO^6tZ#={>{_JFy}|9q+&Zso0*>O0^(I~p8K>vEK;GJM zrw3gQ|Ls!9I6Wb64fI?e=vf``8v>4M*(RM`Aj9d52YPM_^dP%^KHMB|OaIQ2&RYU* z>38>qEcV}8`rUOy9;QFMufw3z<=g+C`$`0Q!uzuFa{6xz(my4T|8u~n1w51w(;4!| z0{PnmJ+B8ml>a>7cLefZ1w53GNxI$3rT(4sT4Ir;Fu&deacG2mf(t`2yZo`(V+rsvs!hv|7c;9+_`40w3me+N9g z?&kpy_5T#`Fg@F#f8g>VlurcQVp^Bog#i!c_Xc>Yz+g@ssya@GJ4RoKeUt+!ycibGq4^*q?h@x!ZYk zyAkh*@*PUNCkoK~q3IbiQ1w=k{95GyRN^}$pTluEm(G9Ish;ylz6$mkj%zvjH_KH% zT$k&3uL9-a`di1pLZI|2>A$5x<-_%~PX3Ce%6}#KkNPM#e`Wb_JMMQU_zmOVgAXQt zccJPD*Q2`YZd|E+9?9=eu6!}LTaWKUQl#&AlK*3q%G-KNlgDkvt|$2u5NK~={i-JR zSCU@{r()|Koqm{t|Ha!Re|xbi`Xt~ESseBmaa=YQo=flKEAd4Z{GZEb$I(5C^&oya z^ zy4}}1p2lLw2I+C>e+_(nz(YOf1>DIGgPmMNd=Ky|iPwN%OWgJ|gy*X}{Tm>EC&^pC z@&V#+LOxu-=k)v&{3(*R=Zro_d-E}XOf9_Qja3|jh zpUa3_x@|q4-PdDYODr}akoR_latY5Zclt*{t~QW&+}8g!f}8#)p??)|o8LMz(BrN< z57!OX%Q^kFp6`r6-th)}K9}@w13kA8e-Y`qI|Kg*xYfs#@%f*`PsHbN-I_~}UGD>u zxAV$B2e3#v+?yC>-|Md*q;uMpQLw-wiFqn4(xAKkpbpdzjKNZ*8o%kQYvx(mUK8*OE z!NYTvoqjvdx{Tysh5Q(BOMf};D?C5h`x*G#xunM)GG9mh7wA8T_+WfqLfqE3uK~C8 zn7tiO-2Bod#I65-7je6iKfV+IN`+u2uH9o(McT1;@FNEg+yL_{L>G!1P zIDGz@cyzvVXZf+bOn)=Vr5ACV|K2qNF9WxFWal!6=j*!ry$2TF4)tf!n!;R$e#54ljVb-PgBB&n3j|oaL*DTYg>Hfv*O)`?7Ov4l=iNSB2PrM8G6&d*br2lT{{~PhUz@H>;<@zk~Hz5BixaFs%=iLna2jbn4{%yAM z#U8a6#(RUid~@}53hHUUfV*-xyBS2hBd(WAd=Kz^;@RMP5uXe`iufe(vEY^u=09tQ z+jx32ar2XFh`$HBI-dBy!7m|h_IxXGn=iR11Al?|S}l&)JH*Su|3iEl_>aVAfp@{g zx#f?IvkxX-3VSFZ-U>dNcp>!94fr)+?rna+2g+xQXHEilcIC!lK6S<=uXBmp_|hZ9 z6BxIAp16&(y+yqL0M-9*aF-8*1wE!Xw(U0hhoz@C2C%b<+j!ta;&$Cx#4Vjmi4R0N z4kK>kkn4zlFkaJV=Z{)C??O5+BKd!9r}8%ve+PDZZwCGZ@$U{+J+BbAa`~LNjemB= z{Jf>}&{3+V7r5oW#cv}>z5oWjH*rhHgP-O<4$mw z{ZVFf&##c*iuh2-Z%2F( z_>RO61Mf?`6?`D^Z@{yOe-55Uyb|@lh`8;W*azI%kIOfkrx=%kH;|q~p?^N{HQ>z| z^qil8-$dN(f6l<~CI03(P5%QK_+!MEE>!s^Gw?0+>!?41k1#r~9m-#~mC(tj6mOV0zuEj{lLxAc5O+|py?td@S`Kasr6!`k_BCU5EK zCi&=I#w|U=h+BFJiLcY2$84U{^pu0oA^9=jwr|MfXMryv`2)ahUex3d1GjxW#{Ud{ zIq5NeEpf}AJBeHV+)v!{$L3w_x|W`Qk^HepkDVK4^2Wa>`Hhgbd0LY<-XHd5d;vb^ z61Vgh6SwrwBW~qr`b_`HNY4tAH*V)#nfyyHXr>wam&wt5?_taHt%ievGTI@70m5?C+0g~yvMlNXMf_B z9y`a$-_G)OzK!wEksh1(HvTsFo21{k&3m)_ z7MO=*Zu8#E?YtM}Hveqg@?k&HZ`|geS$+k{Cy<{u4{Y*r@N-GtxXlBz{9iK2+dMGK zZ_XfZ^SUNqj`VcFJR5VH*JYlYLEh$9P2T+NbdtXm*PWMvFCcDy#^zT|zty`_NWK;N zZC=#mjo+R@-sVMF{+}d&D)ig@q{*)Z|CQv8+x#TU4?;hHxy?^9w|QIUHcx2W#?M%SM8*!8G+(jLQ=`nemH#7bs^b8|; z<2G-`^7b4_<~DD}d{qYhHh*REHve@2$=iI8%{!UA@xNw}w|OU)x91faxB6o9KgPQw z4zcrJncMsi^Zc&q`EPn`{)gpfW{|h>S0^7=mHz*u19``--*-v|eircqpzG2M{A%LO zkiR1X{|oWMAaCQrmi~$0n@N5ixQz#!d^Y%Y7)LZ-2)bI7h8bcuK5g=2pl313+jVWc+2oC%PV$zYHZJSr`$M;T3+Lk;-v!@266gu} z)5Oam|7r#v&fhsbYat(v`%-$kVw}~|iEt%m@|K>i z+vpEX-gpnqYY&@+MLCxXw&zz-yD>9KKi({JfHhU6_h2rK+L z5X&2P>F&6`(-X(v?#=!-{q|J?e>gtSVDN6-u7Tz#8vn6;2(Rn(>0AQ>MEqxCVKNX)JBX0NmEOEQvSBPJV&uv zCU)mvc(?Q~0PaHE?zcN}yWc*da_Hvu>{SNK>>I3^}7#OfH!|# zOtJef+*%#?a@RdT|MdUcyqV*31HLc*cHHJ19m4V^ug6{YZOl`f4C|R6=&8lu?#<#v zCqFOX*tY8R*9AO0FQq=<>+rYJ`x@MOR@1>9Y? z3o`7XfHwv5PX^rb#G!u#-0699X9aHtJS>;@0=@u$ySGmRzA)fl2i)nm@t|Jk9e>e36Ry|FZ+`(lffBepx_#(B8_!=Vv+j4x}74e8beu;|u|E(Qx z`DQlnzBnCy2U%G;I1S;3Jz}o@q0!n$RU0*oE*N6uKOe|SVZ!Nz_?J% zk^G);5)~xB0OdQ5_%?8ylZancsGx@UY&a_O)s_z@WT~L}I^)-4L5KMeZRZU z;^kEeE+c*%?&~VzbKrDuApQmP-$wj6I63yixSn8yIXn$4yKy)T(8*^v-1fo-zs2l(@A~<%FEXInEX$0>UAW)0{(42@dW&B zcy6#u=iS{jK`Ti9QRM#`;uA)x{E@`R;q!6Ciw3LwNyOi1P<|Tm+*Ro-3Kav zf#eUXP|oMT{G+e(w@AJf4x7)1>D;XHpOAbX#FMse%JSKsoAoWpKU$)CekQ&O0ekqo zMQ2yfw5WXeyhX=MaQp$KMbF@==fhJsC@XmMaSQVzYU+a==gNh-|%^hj^Ed+dhFaGOaEzm zD1V0X;T+Vj@Og_)&r{9ntJhvy(UJs1pl@x@nifcP_|Djz=2(dmD^Q2A9P|7^MP8;IYEcq2R~%IP_02bJGM z^8Z49-cS6jomBo|;*UU2_?$zY%`sWzzEr{NWqKCyZA;n~ASP-1`yn zV^QBfBmUF}`x#37^w}z(M|=VNQVH>|kWO1iYUzKnzv`(Z`RyB& zhtG?2>D+jL^2sEhM0rgo{%@3Tc%GHhvoG?$j^wkD{`tfoLchS)uUh&m(Jq9~k#zcZ zL;JFZ^z7bC(;uFH<>X;LvExYof-x$85^;OZ(P_lHms<-@3bRsMF8-x_}J9^x;-?>$KTf@0MZK6lck)6NNhisbJ`zw!m* z-O+D)mH1N_$a#x+PMu!&ec}z^pAesde$5xe&p|)^TjIx{o%)&hY}i#6+9k`+0}C`g zU5S4IKhTZ1?epzT{EKm_Cwxw&%g<8SgRNV(>yAV`IfV3VMEx30{8_|%1;pP*f254~ zO!)ax#0R4Sgy)aBbpEhF(?5aaCoEIGKk-{(w=;>Kf%}?EycT|@f%s~)BX+)*`vmVnpA&y-kK}ln_)kHBl$fsp71#F>8d974Dq!C^^2E? z-wi)w>(#9sTcGG2l0V@f)$;-INf@vDl=$rxD*q+%k#m)QPrS86`LDzuoT9uF>Y1hU zr)`vPO}x2Pc@N_KrYYZ%_=vH}cO~8#@z?<37h@bIhj?|i>KQ@2vb*vk;)j+i-;4PD zXm=`z|7(uQk0X8(>Wi)OxBSULzoUlakLsp+W)okJbk-98=UA1uIKuS*3O~Gvlk|k^J`X51WYJfOzbF;+MnkJxu)Wgx>EH#7{&0d5(Bb z*yqc{FGqg9LA?J=)xVkeM#L52`FqY^?YvUuKO_0c`202TqZ(EIN8(*~P~HLMX8E~( zsq)UmbA~G4miYQAV{2R2tyA!X2pRxTQmY#bdKa}KG=w)Mh#B&7EsG>@eKN#^qHStbTKiq3F@o(T)rxU+)ca@(*{CxPII^zAI$Hr+aAKpNI zE++X|V^#kO;^Wc(T0{I@+}DxBA6GRon^&>xuIZ;=*!g+Jzd_u18tKVHzy2KJ@0O{a zi-?aHqWlWte;cO!8scA}|9cbhr_nx!=N!87T{}bd+(Ysk-IwxukofoWl|M@Sxk}|v z5&r@H;RWIsA%9*aegOQ&Tg0=QRsZ|M8{khqA-*2*!xzL8<*LWdU9|Fg5BX{5{~7Nz zM&+}*=)3WO3-ohW;z#sV-i`PPXs>${KPjp5eTg3hI|lP3{0P$yduA|d$Q@smxaW;Bfz!izS?!aLfp8L4pQ1CkO@jEHlOuP@`pO1;hQSM(5{|E;A9r2tc3VtR2=qd&LyrI)- zl=FI|^WcAMpNHA`3h3wcsN12!_3xniO#a!S`Z*mX-Y`$)*$;QwTRHpT6Jh`ChYy2&vLF5+U-hsb z{v+-SKa2d*9`FO~hd1x3de{%23j3_kuOmG-qMaT`{5sS}xaml~xTgxDdPICXC_phs zd;u~B;c~=(o~(MJ`-`y z^TY=rZhw{da|H_CCT{(=4~Xv#KlvZxqY)>3O}qgH`xEiMqG8XXdb$hjd@JIs7N`Q= zFYwYB<$Xy0f^N!ry=XP;b1=z20R6*>SN2yuwolId{KIpV??v)&#FdXGJ_h|PUKe`Q z5S8cs1uyNQd?x8BM};_$_>4-GPZHleN_jK!XHhQf564Ycd6;`tANNOpWJ~=z;(tax zLf91XJK*17juF2bpfBm^h5SKwNAefNRgnGXG01;}5t00X@Si25|C)Ui;4PA`g@P)Q z{}6ta^JfwQOwON|kw4syd^Kj1Qvp5EK3 zJhvm=iK)hX>$<5t z*Xw6czIJ#M;Cgg8 z62kuT82AVFpXVT+VgLEgLQN<8&pa5~B+7?VkpFClQ<5sk{?qzh>_2Zp`th^Ku5Lm; zETZc!&Qbt(6UpB>Px-+lf6Yn-Y@ZJmDnEwgA3^)Ip7_3q6E+ZEg@Qeccz3jq7Z879 zdj*#fzZn(%D&mizTy7w~!$<|U5ns}%U=#5V_g8Q~@hee|4--EM_3jDcyX7i)j(F=l z1uql-EAsyh;!naaZ6KFz1%(?|EO?G0n<%B0XOfE9W@BHyrIClK*a+$`2(T8>XE1g%$Nt&f_!RL7w-8 zy^e;6_k}%xhLPj{b#c|t`@&}7y1XxJGvYDc7xwSHRS%Eb6u~jfr~ADd`L>w&cHLDE z?+Ys_P`-xbuZP3nePLJQevc#hhH}-z<2f_>Dd&A*m(?jhhxEL@gL2*%whs2p`@;T~ zr}Dfn>^#^N?+Y7_288#8%|rXb`@+tdrTQPFbXGynqr@+sr}9q`e}AxY-WO*3PhKVY zsc4UQU)bfnRnPk*KOgn+6XLH;QF-1M_AAQqTav#9*X4a-t*{f`7xtI=s-O3T-G=+^ z)=|GVzwxgv^fT`Z>)Ta1?+g0@zvq2nZzFKyePNT454%I`t)k0aj5Bi^-IA^zCTDql~0A9N@e5+9B7T1xyG!~?vat0&@? zBS?M?+Kc0ee^IXKIhnXUr}zxwHRwp$eqzg?IO+@U+d3EaW9J>2djq z59z8dk>XyVVz(I4=>s@su2Q%HU<)UTPu|AlzY2^Hk3vBtK)M@}r1X;C|N;zY}rk2I7B2+;TSY7PK$CPwGkd+l?eY4)x_a z;@fVo>AaQrduYcu5r3nb%3EAu_HzL8pZ7!E2Y>rC>G@l>>UoLyi_r5r@sl9GnfS3| zRL{r6&&XHK`<~85JMtaL{{j40;?r_f&z8tPyWj2LZ?`4>V1vr{`u|G17U(FdGragf zP*9{Iu{@fDS3p?8GoU=8NC}7t2dRi?ve|4xB#&j2KtvufDuSho4-iE>fucl2jG#17 z)Yt-2A3dOGv8O63LXz$Jc-C_JPvpW;!WOio0{lEL&```cm^V*pZJ_C7= zpKtnTrr4*F{VL?`-h^*Ko;1%#n)+;;F6F@7x}LKb=hqj=*B0*f`z7=KH?}v|!!M?C z%=Pe&gq!Q(T?jYV!@Ch~u7~#~+*}XGZpNy=xgL(gVheY>9)1LI#qH`hS_HXWo6x`9 zt`k>@J-4eQS#WOGk2v4qb_I|h(uHQ#e?*=D8HCs2{1;(r*}pwj46(5AaVP+XH5T3< z4nX>|@C`RgIXJAe@B=vB2vL1-I3M76dl>nX{ro=i8~eEFueAW^e#<{|QU7sdzY`9)j_{jMLH7R^)Dx$FR{2Fq zQUFeGEc|`s!w8js6#0BM;o}j{*d1Es%tbz#NA|l~3b2syj_BXJ2siIvT}Jr-3I%w8 z@MB{HSV{O$1o#@l2Xz%-9pU}ZAsY#QublwT5q>}N?KZ-v=LoQa@Ha4kUL|~DOn^Ov zKY;qYN%$|}-~)uW$N2gi;WH429}?c*><0;-i@5rn@b59;c%1e`pz%0ec&ik^KBKc3@_6rr<7YJ6is!wzi9L_^_BgNP@qRYO z9glZZFTmsd+ZOT-kN0SI!6$)e_REvn2r!NC81fjx(W?K%YsD~3_J7I}0L`=Pk0Y0eJj&Lc&{5_Fs$@;2FX%M1HO# zd<%|e{y_M9y##oL@JkU;JWk(5zr02EC;ABRF5&g50{oruJUIRn!sny>V}vhiCBRpN ze~#-~CkQ`^06#_eL%`2LJeqhj|G(q{!Z#y6+Y>&jObX`vEdR|HJelk#V7&Aqd>@XJ zgM{xuIYS8Vh#lhy!aHDG@coo~E|L07Ap7@G&J@D8_7MB&g#Xl5@NB}*K|ahUJc#!4 zeUrAcq#W~}Z{z!cXD6ejDNDCDZ4Myp?}4kWe}QH{^*S=l|{4uW|lwgZ#$%|2d2!q$f*vQGt|? zVPN5>aA4Y>>bVmMoAZBUiWqYK-vvKhMddsJT@+{O{yI|(5snr<0`Y_NXW?P=Bm46^ z>=4+WL&~Lm_UHbgg5xmJDt|NL5b55+XTrXx&@6ls_T&8sABeabO!xuxFZ(S9dvt?U z{(LxoJeBj@Spq=bvad(|ZzTKG(8XbjWp93$5+VCk>@SK4?~1&H^kG|L_?n?`~^68E8#Ug1lU3NK?Fhr z;g_RBUMIXK{PS1BN5jGI5&l(c0scX_`Tf#ogqz7Z8@-X-N#~~?z`~6v$exC_l?)S$K58UtR=r69%#B)TK z>$4Ue&h^=V<4=ym#UrI0uFp5u2+sA{T`V}qVKDC|5uD@jYs53h;lJC8J;&jqT*2qa!ivxHVaRbf8~Jk~ z*|$K0?jrpB3;~uAz7hK)-e2_XB!(-=zU$cntRehG)Su(+IQ-A?)+=2K;CQZ7bqo5BBH!cVWq>n_i4UeKn3yZv6HQ8{XY!kF*sym&(EJrxCZ8QwgrNx0e$L zmfc=l9?DhA@|Y}VnYHprWqBZ&7b*`0g1Kd7fnY3B6bcrUR0Q)PxfKOP<)zuOmR(qq zUm9@yCX|~Si_DEfEe?faF5IHRl8AGus)q7KV;!Qg()_}rNH8)uG&m9-l0Q5nJaEYH z!9#5(h2i{oU*A?7&95j4m&LOwEYbCeXA!N4MZ%>eW#w^<$|5Cs+1jOXY{I3*#UW*; z%E~V+$S#SLMhhz=MZst&Rvt`m2GQLyM#^YpS436iA|f@wgA@~eNNHEZQOLe#?3jsD zvj?WfYcY%l3?CL8GK}IC-{FJ*jRRlziC6tr>Ucy?_Wsw$ieCAh z9r%lU@Xh-N?D~s+@UL;uukyh+*I(`WclzL)=UDChY9IV6hx*^;ga3#F|85`rS_l3; zKKQ#F_)C27_dD?K^}#>lz+dWvf6{@k&waece;b@n*!%xJAN*to{%?Ko2RrbWJMi^s znrO#M|Bc;@*Om^ZQ2mmi(@e}s^^&*8=| zP+vIJ|2SSOycz+k>z|@#uD_*E{at|T;i;{SvMjl-mOk;9;(?LM?!wdh-PG(=f7vgD zXU?Z(tEsQt^aKBqn&yD0^?Rt+4+URo`6K9^6d*=>bUy4d842 zL2CA@e-Q0&ZvQ8>5Pf_9>q~=P^^ZXRQPkfoy!t;2`gZ?k_|U%tJDBFSKNAnO+1o$d zhrW3qcze@uEWNfr>Y#t65B;@h|BwXxZ@2tY1N|!GQ5}CHedxb~3&qX#e{#pB@i*Fs z{-@B#Z6w8%$*cb-L;nzXy8TzF*=ziF)(1Ok!sUJ0P@i7))9{bU&3o9i{uniT)vt#B zmzJ`uc-3EVnfTv4ucP(H`p}R5O7yTBkPY?eRex9)(a!=?>yJ~j*Y+=gemx1&rtAK< z3i{^2Uh9wdp+71`8LMf!EUZt@`rV}c=6z9GUmq)bZT~9hpR$x?#jE~){IE9%Cnj27 z-`eu3|8T14Rm;Nq^s1kpChfQ9e|>A&t9}Q4u&kyuSy-Q5_0#%@{t7U4`=_YctNuvn z*MM&pUiIstAC+n}9{*1Dq5mQDQ;jf|UiH)Pz;q>ey8YAC%|EP=Af- ziEY;bGyB;_BlU5pr>w1-XAoH$zFF>6FxIQ=mL*Th)`fOZts9c;vfT=+li5XPwl`u)}SPWAtG zm+%)Q&=0xr=e;KUl(S9EWy$q_(1pKxx7g?WoNnrBq1#>fC&9njvXm9pKkUMvx<~9| z3HbW|fjaqb5BQ13Pk$GF%3cwEFoC{)-r7ljEBH4i;Opn3o%pR^7ovIZg(-&p_p}SY z!!ScPTGsYn7k+o}TXnQd8&_CgKX>d@|GtNXm!bOCJ~6+wif<==_)}rMZ6~XB z=63Plj*eV3!NO3j9<%S*;J-^JplsVpogb?z1TyVpwO%(6{!fuFwEy+}OH+U2|CA5_QFm+ETi#_6JqL@Ckz152Oy?eIb$`~8EvRmtpstNp|ukR4)a+INI_T5zZPHh6?LP*6b6%nKm-^7Z1^S8ZAGql!JudCH z-#^gzFTJ+^d;D-b(ftEA{d&A8shx^XJ?Zu@SF>0BqE6D&&GrAj4bpzQ|L^yqzX1A) z?jN|d|0MK}D@{G=_ODR0*Y@v)ezhjsCa>{-3@@azU%z-rmE%=E3qJr!bpODu{f9S- z{~J(u-Tp^>=r4eNbNj!hwrT&b@}a*R`j4XiX5rQU`=M|5|7sul-MXA%{BLU7{>Odj z4}yN8`v-3Qf6_t!2_O1np`Ymfft!9BUc6>M{?M01yvG0h)HCyc?JG_FU*kjnKImVe zIQGeF{2hY+A&~X>Td!uX?cWXke7m?>_o`p_s>({I=<`dRRw_J6Gp{UG$~$>FpaaMN#P9*Afu70~*deCQwTAxhJQ zZhd;ze^c6TzkjgVhyE!16{VmbA-#^&mL;p%VXkKl#TvoiczaB4IwCDdi zANnstKdqVibqA#V`j|scy8pMT+3WcKC-iF+$3A&&f95-)Z@+)=qAJL%{yk};lxi1O z>t6Ni4vKyy_`3bu)y(=U9m>>{jnGdyPj8)`SU=b0{3{JF)XV}^>({H9^`BRmE;C)t z_Gw>#QK~Wxz?VkfEX$O>6F;j~EN~mzD%$YOasl|30aha5Gj4bW*Z*f)W8!Ut1_HCd z*KM{>ru_z6?&80wga2MuB*RZa0Z!WbtK?^-ruDdg(4eqdH8a1p!srxVA?p6mPT~I< a`LhvJAA*`K`R%_GzaI5pui9synE!vIF7)OA diff --git a/out/src/neopixel.o.ctr b/out/src/neopixel.o.ctr deleted file mode 100644 index 486793076a1b4feed60550eed0da4801fabd5d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmaiw%?^Sv5QKS@y>Rj53veKShD0$D?wi_H-3TqQ)DWNE77%|9y0=cIGv98SB^yk3 z+ihH=xZ1?)61Z*}rUWXfTk2(vMk)bI_y?` zc>iGk(`Q@3I{Dr>DN|glUDVlvbFnB~n83}*QC4x4Cs9x&1Y~t-^!DRR1}UlXy`5nxC3?AupT?&7l&)XokTi`)GYb_|J;7dAvSmb(5R3| diff --git a/out/src/pulse_counter.d b/out/src/pulse_counter.d deleted file mode 100644 index 522525e..0000000 --- a/out/src/pulse_counter.d +++ /dev/null @@ -1,17 +0,0 @@ -out/src/pulse_counter.o: src/pulse_counter.c /usr/include/stdc-predef.h \ - src/basecmd.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/command.h \ - src/ctr.h src/compiler.h src/sched.h diff --git a/out/src/pulse_counter.o b/out/src/pulse_counter.o deleted file mode 100644 index 01502e312937614110bf4ef8288f3f1770bffeee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145280 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 BmHq$# diff --git a/out/src/pulse_counter.o.ctr b/out/src/pulse_counter.o.ctr deleted file mode 100644 index 8374acb5e2b27c695d4650ed48c519c3377e31a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmaLSOAf*y5C&k5!lrvK&_&Z$V?u3W-A~Ar8qyY!N20fvK0?%mteAg>`2tjR$)GG4 zW9RNh(Oa-Vf#+@58V zQXW^WXXD$ZDJ~TpS#j#(i+Sd%her_h1-nlV^t;}%BvMVt9|yG> VE$`k~c#AYmfi{ diff --git a/out/src/pwmcmds.d b/out/src/pwmcmds.d deleted file mode 100644 index 43a62b5..0000000 --- a/out/src/pwmcmds.d +++ /dev/null @@ -1,17 +0,0 @@ -out/src/pwmcmds.o: src/pwmcmds.c /usr/include/stdc-predef.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/command.h \ - src/ctr.h src/compiler.h src/sched.h diff --git a/out/src/pwmcmds.o b/out/src/pwmcmds.o deleted file mode 100644 index 169bc71bf0daddb8a372510251e4c6438cdd9274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155256 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≠m-e*x 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 YuXg{oq*pMv@=H*En}3;pa!26*0rrX~_5c6? diff --git a/out/src/pwmcmds.o.ctr b/out/src/pwmcmds.o.ctr deleted file mode 100644 index 34df440c9f63b5f66b2bb655f5d92c72648b4ed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmbV|!ES>v5JdASd*R+6;DAC~MS?~u+*j6m3091qVsD^-UkFV_nyQt$w;5?xZzg}- z7P#G)W%iQeQ;|JaK)&mg(-=77Y3R^Pga=rwlW}PxK<{K3qoHG%=Rbnr?~x$nz#Fydt{Q-sm(TAnWOPM|0(=>a5;v zv8rF8qL#H-)-wh0nO%gzSPMK7Pj071)Y7YHy!)Mtylc#11@_JOB>Q7D(A+4o5x-`< kL6|CC_E~oQe~-I-X+oIlhGh=p4&WPbJVt0$zZz%r0o^;h^Z)<= diff --git a/out/src/sched.d b/out/src/sched.d deleted file mode 100644 index b68de16..0000000 --- a/out/src/sched.d +++ /dev/null @@ -1,22 +0,0 @@ -out/src/sched.o: src/sched.c /usr/include/stdc-predef.h \ - /usr/include/setjmp.h /usr/include/features.h \ - /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/setjmp.h \ - /usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h out/autoconf.h \ - src/basecmd.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \ - out/board-generic/board/io.h src/compiler.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - out/board-generic/board/pgm.h src/command.h src/ctr.h src/compiler.h \ - src/sched.h src/stepper.h diff --git a/out/src/sched.o b/out/src/sched.o deleted file mode 100644 index b02a3c127003e8663a01d9e254d3c0075988f716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219936 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�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 Rl>QQaXy|?C`0S0-|38_6!*l=u diff --git a/out/src/sched.o.ctr b/out/src/sched.o.ctr deleted file mode 100644 index a1905e50a7a725e72e184735d5a8d72224209512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmZ{f!3x4K42JtCx$H4^kgW$n6t>>OXoD-(7MhH`zTKpvqB(}|%by>6-JMXMyGySJ zV41S`cvT8N_MVaFMO<3r#)!Abk_(95wavVI^Do$jWN&S={IRMxnu9rZIGO>*nqvb^ rnH;P$MTkkD9#z{s|9kU{zf%TD2}&l@4*lYoVrfVLWEbod0y*^nl@(Og diff --git a/out/src/sensor_adxl345.d b/out/src/sensor_adxl345.d deleted file mode 100644 index 9b134ba..0000000 --- a/out/src/sensor_adxl345.d +++ /dev/null @@ -1,21 +0,0 @@ -out/src/sensor_adxl345.o: src/sensor_adxl345.c /usr/include/stdc-predef.h \ - /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h out/board-generic/board/irq.h \ - out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/basecmd.h \ - src/command.h src/ctr.h src/compiler.h src/sched.h src/spicmds.h diff --git a/out/src/sensor_adxl345.o b/out/src/sensor_adxl345.o deleted file mode 100644 index ab08b9868fa32ca4d099f5ec0ea4ea4b0f24438f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178952 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%0DtZN)B%lcwiS{N|9Km3J-};i9A$_#3<-n=qmM* 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�?7@VWpJhmU2EC@(O1wGrlWiyrpCOyj|WXd}qNfmPl(@ z)|x2J>qVdD?KwpUlS;L|D?f+};ZZgDHXK7P7|O4Gm6h~TJ$?DzsPzxh zEb6KX&7xD;T4$j&QB!ym_`A$gcs#-oN6*WyDn+Y;lBpb5DIGG5%47~eP|49ixPDMH z^b>QJ+bR!|xzOT!45dPog=2;3dpRMw&p;;0#Yg3*FYJ+(dSMZ_R-XMeyS=AJ7GU^# zMG=$o$O*%_AQ;V+ft=)iVa`I_ms44J~jGxB^HlB~jvV=#>{L0!V-6{#!ObwN7voMHGT_rpN9x>*gH zmdofG+^}5KJcq_0cAJ(_>-=ic@yhit^$bNcZCEQ4{$8rAL+2IJ4L;>Lr@dR&9(ht^ zz3`(?_{i0J4W)&$7F|rxGqbF;p^)v$waE>Bhe70HL*UiVHW?5;9@VxmYE9Io9WL}; zz1&!rsmayU)-}i+dVNhUSKpM&>Wox2CzDlmvVK~wN66GvPNxBF@n?~vkrGnA`;qTd zk>80<@8}c&lUykz;JT#B9c`FuNZQSw)Na@1@*fgg!UNqQ7KImIoYI5TPR~WpFUh~c zvR9w`UEjA%R%3>Q31j)-w>(r7CZ}v=S+`vtbRUY3VX1-5K%B64?M6Ltm?6+9%q4SRNk?-+Pm$rW0>QG;WnPE61ogOLjs8Xk0V|w56V$Z8`@V@dkDQ&)5+eD(0 zEa)s`SQ^Fs0k-=6ELjcVHYroD9@Mnif{99T%$lT4akpbwVv*b*W7bq?I4!@gf$S|@ zSxy{d3oUgLFpRF3}qsv!0Z-5xsEe1 zvT9@bV5QuzQ&^`GW2p@Bl6s=W1G`#XY3Q@G$zNew&dnh1sNF~FxIIJ!yB$o`iPQMV z>j~x8Vq&4f6O(K#xEyhOVSR=et&~d#g^6hfA8a!Q$uD*4LE>*-o}3ytb|`*m@d{b- zZuh0>BF=x8cc(>(OtU2Ecf0~L*ivLgen(~TI?=RA*e#ZoX}b-@2WN5ysAYrHWQ{N={T%vmE094cN$lPt9L5DeC>$*yMD=t99iyDJwdL` z$!GbMOhM_cB{I2OwQBh~xm+mqgZq8T2Xr-*T0TIHb`c3aoMBd`O)|``7owZSk&w%m zxNl3A`FD2A*XfHeUs0orgQW}jMLSOHkd46I>ReTbQ^~j={ZIn@f0Fs=(9Y*wd|Fyd zP_(Z1KUg#$?pDMU+!%gYeVbfewZe<#MIla3zPsR;Wn8yzU~T#oy?;Ym;N-sLi)xOO zg@;y0@=H%0JvQl*O1;Zf7qkqgyn9=>|M2w?woX-Y(3NZZWQEOYxofmsdPt>u)XEh@ zEBc4b!-f@M?q|h?>i6jbl<>_+u7$OgesGyii{-|+vd3oU*8R}ZHfWesDTGuPlqO!BOOK!Gkk=gX< zHhX<6{L+DRQrV%1vVu{j+19LGgy|A!khybd0F#jB5Q#ieR+-KOD@o>+iUu7;Hy_DSN-nA@5{#~MeaK{@T@wi1a6yQN|Is9>jg_Xi z&6HlF4cMJdbvCygCAW4j5Rbb!2g@5Mzrn-9!^SJ4c*kIx5R|WZHryf+oj*gOt@@}A-1DeFfk

      57vi;iTrr!X**qlO$f4t&B|I(vhU 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 diff --git a/out/src/sensor_adxl345.o.ctr b/out/src/sensor_adxl345.o.ctr deleted file mode 100644 index abde60f631de11c00e1fb9cd54ed4bce43d552a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmb7A!Ait16wIf*OD~=T_1Hscs|eX$aJ@g`YvP8si6$?w{=Ln%6)cNjE+Lb7^JWH{ zww72|Qp)G!D-Z_^$sw!Qo8%~h>dwR6{lf(jLd^8TZddIae3aGG5y+3Davgpq9lmho zM^>C7+`?7Z+pa9=A9`CMm=%BqPkmV=2s$#dr9MtCA@E|f-PebvefbHonA*VgoE`;)lhh)^9zmnu!1a diff --git a/out/src/sensor_angle.d b/out/src/sensor_angle.d deleted file mode 100644 index 7227004..0000000 --- a/out/src/sensor_angle.d +++ /dev/null @@ -1,18 +0,0 @@ -out/src/sensor_angle.o: src/sensor_angle.c /usr/include/stdc-predef.h \ - src/basecmd.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \ - out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h out/board/gpio.h \ - out/board-generic/board/irq.h src/command.h src/ctr.h src/compiler.h \ - src/sched.h src/spicmds.h diff --git a/out/src/sensor_angle.o b/out/src/sensor_angle.o deleted file mode 100644 index 687d5d50c4586e02abb9271feacc5c41c9844b71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219544 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 z 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

      9o~;#sHEZN9Lf7!)NY< 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

      JQWd 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 AX#fBK diff --git a/out/src/sensor_angle.o.ctr b/out/src/sensor_angle.o.ctr deleted file mode 100644 index 5a221a62727db25ffe37c6b1e053b490c1f6e309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcma)4%WlFj5X`6SC71RRps1%DqL5Zd0VI;1SFYoLMR0=GsmkBic_30=txwi^W@mQR zIE%s8D~TGvDQqF~fZKiJbOe+c;W=t68+Z!9p#lDisOn>AWcU&Ub4#J#@Vu_&d}> zAI~nWxy#Cp)&`B_J8FcC+zX_w%#F3*xptg;zJ$~_Sja!6^m>%WN zOO?ybuK}-0{e;b`2G@SS$I5!_C+p@)(jc9On51iHF+f65scq(mTH4^jevnEk8^#rW zuD)0yv-2u}Z)F9>iZt2v>;70oYb&u@o^jYfz!YNYjmDqw?0tLP8UKgJXzIPZW&_%& Pq5Y}HMw7{8!1A0Q#S#9$ diff --git a/out/src/sensor_mpu9250.d b/out/src/sensor_mpu9250.d deleted file mode 100644 index 3429f4d..0000000 --- a/out/src/sensor_mpu9250.d +++ /dev/null @@ -1,22 +0,0 @@ -out/src/sensor_mpu9250.o: src/sensor_mpu9250.c /usr/include/stdc-predef.h \ - /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h out/board-generic/board/irq.h \ - out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/basecmd.h \ - src/command.h src/ctr.h src/compiler.h src/sched.h out/board/gpio.h \ - src/i2ccmds.h /usr/include/inttypes.h diff --git a/out/src/sensor_mpu9250.o b/out/src/sensor_mpu9250.o deleted file mode 100644 index 7ebfcd5b7047ec1c1b0be05b3e6d639d37bbf6a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199592 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

      m{>X)~wtT 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 N_$!sRwJ)!~{|BiWV*&sG diff --git a/out/src/sensor_mpu9250.o.ctr b/out/src/sensor_mpu9250.o.ctr deleted file mode 100644 index 386f1978cf5fd293c7d9a8a3da9bbb06d180132f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 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 HONRa#9i=}6 diff --git a/out/src/spi_software.o.ctr b/out/src/spi_software.o.ctr deleted file mode 100644 index e59ff885e7345595012e642dbf131d52df3eab4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmZvW!485j5JdTuy>RyjI5boZ2}mN`H?=KhBkdBl=ud2W9cCwdlNRoyxm diff --git a/out/src/spicmds.d b/out/src/spicmds.d deleted file mode 100644 index 6a1746c..0000000 --- a/out/src/spicmds.d +++ /dev/null @@ -1,20 +0,0 @@ -out/src/spicmds.o: src/spicmds.c /usr/include/stdc-predef.h \ - /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h out/autoconf.h out/board/gpio.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h src/basecmd.h \ - src/command.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - src/ctr.h src/compiler.h src/sched.h src/spi_software.h src/spicmds.h diff --git a/out/src/spicmds.o b/out/src/spicmds.o deleted file mode 100644 index 090f3c39bc615b28226156dd92585b60939fbf0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204368 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

      x9^3lT#>q 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 diff --git a/out/src/spicmds.o.ctr b/out/src/spicmds.o.ctr deleted file mode 100644 index 912e58b45e4a3a9fd1b11f7e6bbc326240195cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 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 UlkX1Xm3~Vdq2FkMk%ZI#KanGy{r~^~ diff --git a/out/src/stepper.o.ctr b/out/src/stepper.o.ctr deleted file mode 100644 index 5e02b2285d33c60c0a9a93f8b6b21b63fa4b8109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809 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\&&7Wv9f5W913sd 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 diff --git a/out/src/tmcuart.d b/out/src/tmcuart.d deleted file mode 100644 index 16893c1..0000000 --- a/out/src/tmcuart.d +++ /dev/null @@ -1,21 +0,0 @@ -out/src/tmcuart.o: src/tmcuart.c /usr/include/stdc-predef.h \ - /usr/include/string.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/include/aarch64-linux-gnu/bits/types/locale_t.h \ - /usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/strings.h out/board/gpio.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/basecmd.h \ - src/command.h src/ctr.h src/compiler.h src/sched.h diff --git a/out/src/tmcuart.o b/out/src/tmcuart.o deleted file mode 100644 index 907da48994b37402bb5dcfdb880398ff23a76c1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192216 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 diff --git a/out/src/trsync.d b/out/src/trsync.d deleted file mode 100644 index de8a224..0000000 --- a/out/src/trsync.d +++ /dev/null @@ -1,17 +0,0 @@ -out/src/trsync.o: src/trsync.c /usr/include/stdc-predef.h src/basecmd.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stddef.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h out/board/gpio.h \ - out/board-generic/board/irq.h out/board-generic/board/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h src/command.h \ - src/ctr.h src/compiler.h src/sched.h src/trsync.h diff --git a/out/src/trsync.o b/out/src/trsync.o deleted file mode 100644 index 71104db4729f537517081343c5102c4ac15c8c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184472 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 JwSG8WeFJ?E$M66E diff --git a/test/klippy/printers.test b/test/klippy/printers.test index 647aeb7..4388fcb 100644 --- a/test/klippy/printers.test +++ b/test/klippy/printers.test @@ -161,6 +161,7 @@ CONFIG ../../config/printer-creality-cr6se-2020.cfg CONFIG ../../config/printer-creality-cr6se-2021.cfg CONFIG ../../config/printer-creality-ender2pro-2021.cfg CONFIG ../../config/printer-creality-ender3-s1-2021.cfg +CONFIG ../../config/printer-creality-ender3-s1pro-2022.cfg CONFIG ../../config/printer-creality-ender3-v2-2020.cfg CONFIG ../../config/printer-creality-ender3max-2021.cfg CONFIG ../../config/printer-creality-ender3pro-2020.cfg

      WDyBmnD-uGA6}`Waml+Crbe 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

    xgLS*^9`c}zH$uZ&l317wtL43yd~QM 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 diff --git a/out/src/endstop.o.ctr b/out/src/endstop.o.ctr deleted file mode 100644 index 5919ab27578500c31c260fcc63b112663ae5a87c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmaKoOAf*y5I{W&8~0wI3)5CNRTDkHgwPR*bU+x4y}d+YibjIOyUx|@CEX^i9SqsT$@*P3ais1kN diff --git a/out/src/generic/alloc.d b/out/src/generic/alloc.d deleted file mode 100644 index 3140dfd..0000000 --- a/out/src/generic/alloc.d +++ /dev/null @@ -1,14 +0,0 @@ -out/src/generic/alloc.o: src/generic/alloc.c /usr/include/stdc-predef.h \ - src/generic/misc.h /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h diff --git a/out/src/generic/alloc.o b/out/src/generic/alloc.o deleted file mode 100644 index 9544add1f087f94360ef08739b49efce5f7adea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100096 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 diff --git a/out/src/generic/alloc.o.ctr b/out/src/generic/alloc.o.ctr deleted file mode 100644 index e69de29..0000000 diff --git a/out/src/generic/crc16_ccitt.d b/out/src/generic/crc16_ccitt.d deleted file mode 100644 index 4083bf1..0000000 --- a/out/src/generic/crc16_ccitt.d +++ /dev/null @@ -1,15 +0,0 @@ -out/src/generic/crc16_ccitt.o: src/generic/crc16_ccitt.c \ - /usr/include/stdc-predef.h src/generic/misc.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdarg.h \ - /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h /usr/include/stdint.h \ - /usr/include/aarch64-linux-gnu/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \ - /usr/include/aarch64-linux-gnu/bits/wordsize.h \ - /usr/include/aarch64-linux-gnu/bits/long-double.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs.h \ - /usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \ - /usr/include/aarch64-linux-gnu/bits/types.h \ - /usr/include/aarch64-linux-gnu/bits/typesizes.h \ - /usr/include/aarch64-linux-gnu/bits/wchar.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-intn.h \ - /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h diff --git a/out/src/generic/crc16_ccitt.o b/out/src/generic/crc16_ccitt.o deleted file mode 100644 index 0e0da6cf6feddd7e45d987ca67caa583d000695b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102040 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 diff --git a/out/src/initial_pins.o.ctr b/out/src/initial_pins.o.ctr deleted file mode 100644 index 094aa71040726bf0e1bcce8214a5d92fa4f4b92b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77 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